Template
Compare commits
1
Commits
main
..
bf0421ac8d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf0421ac8d |
@@ -1,15 +0,0 @@
|
|||||||
### Summary :memo:
|
|
||||||
_Write an overview about it._
|
|
||||||
|
|
||||||
### Details
|
|
||||||
_Describe more what you did on changes._
|
|
||||||
1. (...)
|
|
||||||
2. (...)
|
|
||||||
|
|
||||||
### Bugfixes :bug: (delete if dind't have any)
|
|
||||||
-
|
|
||||||
|
|
||||||
### Checks
|
|
||||||
- [ ] Closed #798
|
|
||||||
- [ ] Tested Changes
|
|
||||||
- [ ] Stakeholder Approval
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
echo "Running commit message checks..."
|
|
||||||
|
|
||||||
. "$(dirname -- "$0")/../../.gitea/conventional_commits/hooks/text-styles.sh"
|
|
||||||
|
|
||||||
|
|
||||||
# Get the commit message
|
|
||||||
commit="$(cat .git/COMMIT_EDITMSG)"
|
|
||||||
# Define the conventional commit regex
|
|
||||||
regex='^((build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\(.+\))?(!?):\s([a-zA-Z0-9-_!\&\.\%\(\)\=\w\s]+)\s?(,?\s?)((ref(s?):?\s?)(([A-Z0-9]+\-[0-9]+)|(NOISSUE))))|(release: .*)$'
|
|
||||||
|
|
||||||
# Check if the commit message matches the conventional commit format
|
|
||||||
if ! echo "$commit" | grep -Pq "$regex"
|
|
||||||
then
|
|
||||||
echo
|
|
||||||
colorPrint red "❌ Failed to create commit. Your commit message does not follow the conventional commit format."
|
|
||||||
colorPrint red "Please use the following format: $(colorPrint brightRed 'type(scope)?: description')"
|
|
||||||
colorPrint red "Available types are listed below. Scope is optional. Use ! after type to indicate breaking change."
|
|
||||||
echo
|
|
||||||
colorPrint brightWhite "Quick examples:"
|
|
||||||
echo "feat: add email notifications on new direct messages refs ABC-1213"
|
|
||||||
echo "feat(shopping cart): add the amazing button ref: DEFG-23"
|
|
||||||
echo "feat!: remove ticket list endpoint ref DADA-109"
|
|
||||||
echo "fix(api): handle empty message in request body refs: MINE-82"
|
|
||||||
echo "chore(deps): bump some-package-name to version 2.0.0 refs ASDF-12"
|
|
||||||
echo
|
|
||||||
colorPrint brightWhite "Commit types:"
|
|
||||||
colorPrint brightCyan "build: $(colorPrint white "Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)" -n)"
|
|
||||||
colorPrint brightCyan "ci: $(colorPrint white "Changes to CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)" -n)"
|
|
||||||
colorPrint brightCyan "chore: $(colorPrint white "Changes which doesn't change source code or tests e.g. changes to the build process, auxiliary tools, libraries" -n)"
|
|
||||||
colorPrint brightCyan "docs: $(colorPrint white "Documentation only changes" -n)"
|
|
||||||
colorPrint brightCyan "feat: $(colorPrint white "A new feature" -n)"
|
|
||||||
colorPrint brightCyan "fix: $(colorPrint white "A bug fix" -n)"
|
|
||||||
colorPrint brightCyan "perf: $(colorPrint white "A code change that improves performance" -n)"
|
|
||||||
colorPrint brightCyan "refactor: $(colorPrint white "A code change that neither fixes a bug nor adds a feature" -n)"
|
|
||||||
colorPrint brightCyan "revert: $(colorPrint white "Revert a change previously introduced" -n)"
|
|
||||||
colorPrint brightCyan "test: $(colorPrint white "Adding missing tests or correcting existing tests" -n)"
|
|
||||||
echo
|
|
||||||
|
|
||||||
colorPrint brightWhite "Reminders"
|
|
||||||
echo "Put newline before extended commit body"
|
|
||||||
echo "More details at $(underline "http://www.conventionalcommits.org")"
|
|
||||||
echo
|
|
||||||
echo "The commit message you attempted was: $commit"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Rules for generating semantic versioning
|
|
||||||
# major: breaking change
|
|
||||||
# minor: feat, style
|
|
||||||
# patch: build, fix, perf, refactor, revert
|
|
||||||
|
|
||||||
PREVENT_REMOVE_FILE=$1
|
|
||||||
TEMP_FILE_PATH=.gitea/conventional_commits/tmp
|
|
||||||
|
|
||||||
LAST_TAG=$(git describe --tags --abbrev=0 --always)
|
|
||||||
echo "Last tag: #$LAST_TAG#"
|
|
||||||
PATTERN="^[0-9]+\.[0-9]+\.[0-9]+$"
|
|
||||||
|
|
||||||
increment_version() {
|
|
||||||
local version=$1
|
|
||||||
local increment=$2
|
|
||||||
local major=$(echo $version | cut -d. -f1)
|
|
||||||
local minor=$(echo $version | cut -d. -f2)
|
|
||||||
local patch=$(echo $version | cut -d. -f3)
|
|
||||||
|
|
||||||
if [ "$increment" == "major" ]; then
|
|
||||||
major=$((major + 1))
|
|
||||||
minor=0
|
|
||||||
patch=0
|
|
||||||
elif [ "$increment" == "minor" ]; then
|
|
||||||
minor=$((minor + 1))
|
|
||||||
patch=0
|
|
||||||
elif [ "$increment" == "patch" ]; then
|
|
||||||
patch=$((patch + 1))
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "${major}.${minor}.${patch}"
|
|
||||||
}
|
|
||||||
|
|
||||||
create_file() {
|
|
||||||
local with_range=$1
|
|
||||||
if [ -s $TEMP_FILE_PATH/messages.txt ]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
if [ "$with_range" == "true" ]; then
|
|
||||||
git log $LAST_TAG..HEAD --no-decorate --pretty=format:"%s" > $TEMP_FILE_PATH/messages.txt
|
|
||||||
else
|
|
||||||
git log --no-decorate --pretty=format:"%s" > $TEMP_FILE_PATH/messages.txt
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
get_commit_range() {
|
|
||||||
rm $TEMP_FILE_PATH/messages.txt
|
|
||||||
if [[ $LAST_TAG =~ $PATTERN ]]; then
|
|
||||||
create_file true
|
|
||||||
else
|
|
||||||
create_file
|
|
||||||
LAST_TAG="0.0.0"
|
|
||||||
fi
|
|
||||||
echo " " >> $TEMP_FILE_PATH/messages.txt
|
|
||||||
}
|
|
||||||
|
|
||||||
start() {
|
|
||||||
mkdir -p $TEMP_FILE_PATH
|
|
||||||
get_commit_range
|
|
||||||
new_version=$LAST_TAG
|
|
||||||
increment_type=""
|
|
||||||
|
|
||||||
while read message; do
|
|
||||||
echo $message
|
|
||||||
if echo $message | grep -Pq '(feat|style)(\([\w]+\))?!:([a-zA-Z0-9-_!\&\.\%\(\)\=\w\s]+)\s?(,?\s?)((ref(s?):?\s?)(([A-Z0-9]+\-[0-9]+)|(NOISSUE)))'; then
|
|
||||||
increment_type="major"
|
|
||||||
echo "a"
|
|
||||||
break
|
|
||||||
elif echo $message | grep -Pq '(feat|style)(\([\w]+\))?:([a-zA-Z0-9-_!\&\.\%\(\)\=\w\s]+)\s?(,?\s?)((ref(s?):?\s?)(([A-Z0-9]+\-[0-9]+)|(NOISSUE)))'; then
|
|
||||||
if [ -z "$increment_type" ] || [ "$increment_type" == "patch" ]; then
|
|
||||||
increment_type="minor"
|
|
||||||
echo "b"
|
|
||||||
fi
|
|
||||||
elif echo $message | grep -Pq '(build|fix|perf|refactor|revert)(\(.+\))?:\s([a-zA-Z0-9-_!\&\.\%\(\)\=\w\s]+)\s?(,?\s?)((ref(s?):?\s?)(([A-Z0-9]+\-[0-9]+)|(NOISSUE)))'; then
|
|
||||||
if [ -z "$increment_type" ]; then
|
|
||||||
increment_type="patch"
|
|
||||||
echo "c"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done < $TEMP_FILE_PATH/messages.txt
|
|
||||||
|
|
||||||
if [ -n "$increment_type" ]; then
|
|
||||||
new_version=$(increment_version $LAST_TAG $increment_type)
|
|
||||||
echo "New version: $new_version"
|
|
||||||
|
|
||||||
gitchangelog | grep -v "[rR]elease:" > HISTORY.md
|
|
||||||
git add DotnetTestLib/VERSION HISTORY.md
|
|
||||||
echo $new_version > DotnetTestLib/VERSION
|
|
||||||
git commit -m "release: version $new_version 🚀"
|
|
||||||
echo "creating git tag : $new_version"
|
|
||||||
git tag $new_version
|
|
||||||
git push -u origin HEAD --tags
|
|
||||||
echo "Gitea Actions will detect the new tag and release the new version."
|
|
||||||
else
|
|
||||||
echo "No changes requiring a version increment."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
|
|
||||||
if [ -z "$PREVENT_REMOVE_FILE" ]; then
|
|
||||||
rm -f $TEMP_FILE_PATH/messages.txt
|
|
||||||
fi
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
colorPrint() {
|
|
||||||
local color=$1
|
|
||||||
local text=$2
|
|
||||||
shift 2
|
|
||||||
local newline="\n"
|
|
||||||
local tab=""
|
|
||||||
|
|
||||||
for arg in "$@"
|
|
||||||
do
|
|
||||||
if [ "$arg" = "-t" ]; then
|
|
||||||
tab="\t"
|
|
||||||
elif [ "$arg" = "-n" ]; then
|
|
||||||
newline=""
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
case $color in
|
|
||||||
black) color_code="30" ;;
|
|
||||||
red) color_code="31" ;;
|
|
||||||
green) color_code="32" ;;
|
|
||||||
yellow) color_code="33" ;;
|
|
||||||
blue) color_code="34" ;;
|
|
||||||
magenta) color_code="35" ;;
|
|
||||||
cyan) color_code="36" ;;
|
|
||||||
white) color_code="37" ;;
|
|
||||||
brightBlack) color_code="90" ;;
|
|
||||||
brightRed) color_code="91" ;;
|
|
||||||
brightGreen) color_code="92" ;;
|
|
||||||
brightYellow) color_code="93" ;;
|
|
||||||
brightBlue) color_code="94" ;;
|
|
||||||
brightMagenta) color_code="95" ;;
|
|
||||||
brightCyan) color_code="96" ;;
|
|
||||||
brightWhite) color_code="97" ;;
|
|
||||||
*) echo "Invalid color"; return ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
printf "\e[${color_code}m${tab}%s\e[0m${newline}" "$text"
|
|
||||||
}
|
|
||||||
|
|
||||||
underline () {
|
|
||||||
printf "\033[4m%s\033[24m" "$1"
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
previous_tag=$(git tag --sort=-creatordate | sed -n 2p)
|
|
||||||
git shortlog "${previous_tag}.." | sed 's/^./ &/'
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
while getopts a:n:u:d: flag
|
|
||||||
do
|
|
||||||
case "${flag}" in
|
|
||||||
a) author=${OPTARG};;
|
|
||||||
n) name=${OPTARG};;
|
|
||||||
u) urlname=${OPTARG};;
|
|
||||||
d) description=${OPTARG};;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Author: $author";
|
|
||||||
echo "Project Name: $name";
|
|
||||||
echo "Project URL name: $urlname";
|
|
||||||
echo "Description: $description";
|
|
||||||
|
|
||||||
echo "Renaming project..."
|
|
||||||
|
|
||||||
original_author="author_name"
|
|
||||||
original_name="project_name"
|
|
||||||
original_urlname="project_urlname"
|
|
||||||
original_description="project_description"
|
|
||||||
# for filename in $(find . -name "*.*")
|
|
||||||
for filename in $(git ls-files)
|
|
||||||
do
|
|
||||||
sed -i "s/$original_author/$author/g" $filename
|
|
||||||
sed -i "s/$original_name/$name/g" $filename
|
|
||||||
sed -i "s/$original_urlname/$urlname/g" $filename
|
|
||||||
sed -i "s/$original_description/$description/g" $filename
|
|
||||||
echo "Renamed $filename"
|
|
||||||
done
|
|
||||||
|
|
||||||
mv project_name $name
|
|
||||||
mv project_name.Tests $name.Tests
|
|
||||||
mv project_name.sln $name.sln
|
|
||||||
mv $name/project_name.csproj $name/$name.csproj
|
|
||||||
mv $name.Tests/project_name.Tests.csproj $name.Tests/$name.Tests.csproj
|
|
||||||
|
|
||||||
# This command runs only once on GHA!
|
|
||||||
rm -rf .gitea/template.yml
|
|
||||||
rm -rf project_name
|
|
||||||
rm -rf project_name.Tests
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
author: rochacbruno
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
# This is a basic workflow to help you get started with Actions
|
|
||||||
|
|
||||||
name: CI
|
|
||||||
|
|
||||||
env:
|
|
||||||
SKIP_MAKE_SETUP_CHECK: 'true'
|
|
||||||
|
|
||||||
# Controls when the workflow will run
|
|
||||||
on:
|
|
||||||
# Triggers the workflow on push or pull request events but only for the main branch
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
linter:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
dotnet-version: [9.0.X]
|
|
||||||
os: [ubuntu-latest]
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: actions/setup-dotnet@v4
|
|
||||||
with:
|
|
||||||
dotnet-version: ${{ matrix.dotnet-version }}
|
|
||||||
- name: Run linter
|
|
||||||
run: make lint
|
|
||||||
|
|
||||||
tests_linux:
|
|
||||||
needs: linter
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
dotnet-version: [9.0.X]
|
|
||||||
os: [ubuntu-latest]
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: actions/setup-dotnet@v4
|
|
||||||
with:
|
|
||||||
dotnet-version: ${{ matrix.dotnet-version }}
|
|
||||||
- name: Run tests
|
|
||||||
run: make test
|
|
||||||
|
|
||||||
# tests_mac:
|
|
||||||
# needs: linter
|
|
||||||
# strategy:
|
|
||||||
# fail-fast: false
|
|
||||||
# matrix:
|
|
||||||
# dotnet-version: [9.0.X]
|
|
||||||
# os: [macos-latest]
|
|
||||||
# runs-on: ${{ matrix.os }}
|
|
||||||
# steps:
|
|
||||||
# - uses: actions/checkout@v3
|
|
||||||
# - uses: actions/setup-dotnet@v4
|
|
||||||
# with:
|
|
||||||
# dotnet-version: ${{ matrix.dotnet-version }}
|
|
||||||
# - name: Install project
|
|
||||||
# run: make install
|
|
||||||
# - name: Run tests
|
|
||||||
# run: make test
|
|
||||||
|
|
||||||
# tests_win:
|
|
||||||
# needs: linter
|
|
||||||
# strategy:
|
|
||||||
# fail-fast: false
|
|
||||||
# matrix:
|
|
||||||
# dotnet-version: [9.0.X]
|
|
||||||
# os: [windows-latest]
|
|
||||||
# runs-on: ${{ matrix.os }}
|
|
||||||
# steps:
|
|
||||||
# - uses: actions/checkout@v3
|
|
||||||
# - uses: actions/setup-dotnet@v4
|
|
||||||
# with:
|
|
||||||
# dotnet-version: ${{ matrix.dotnet-version }}
|
|
||||||
# - name: Install Pip
|
|
||||||
# run: pip install --user --upgrade pip
|
|
||||||
# - name: Install project
|
|
||||||
# run: pip install -e .[test]
|
|
||||||
# - name: run tests
|
|
||||||
# run: pytest -s -vvvv -l --tb=long tests
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
name: Upload Python Package
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
env:
|
|
||||||
SKIP_MAKE_SETUP_CHECK: 'true'
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
# Sequence of patterns matched against refs/tags
|
|
||||||
tags:
|
|
||||||
- '*' # Push events to matching v*, i.e. v1.0, v20.15.10
|
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
release:
|
|
||||||
name: Create Release
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
# by default, it uses a depth of 1
|
|
||||||
# this fetches all history so that we can read each commit
|
|
||||||
fetch-depth: 0
|
|
||||||
- name: Generate Changelog
|
|
||||||
run: .gitea/release_message.sh > release_message.md
|
|
||||||
- name: Release
|
|
||||||
uses: softprops/action-gh-release@v1
|
|
||||||
with:
|
|
||||||
body_path: release_message.md
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
needs: release
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Set up dotnet
|
|
||||||
uses: actions/setup-dotnet@v4
|
|
||||||
with:
|
|
||||||
dotnet-version: '9.0.X'
|
|
||||||
- name: Check version match
|
|
||||||
run: |
|
|
||||||
REPOSITORY_NAME=$(echo "$GITHUB_REPOSITORY" | awk -F '/' '{print $2}' | tr '-' '_')
|
|
||||||
if [ "$(cat $REPOSITORY_NAME/VERSION)" = "${GITHUB_REF_NAME}" ] ; then
|
|
||||||
echo "Version matches successfully!"
|
|
||||||
else
|
|
||||||
echo "Version must match!"
|
|
||||||
exit -1
|
|
||||||
fi
|
|
||||||
# - name: Build and publish
|
|
||||||
# env:
|
|
||||||
# GITEA_USERNAME: gitearobot
|
|
||||||
# GITEA_PASSWORD: ${{ secrets.PACKAGE_GITEA_PAT }}
|
|
||||||
# run: |
|
|
||||||
# REPOSITORY_OWNER=$(echo "$GITHUB_REPOSITORY" | awk -F '/' '{print $1}')
|
|
||||||
# REPOSITORY_NAME=$(echo "$GITHUB_REPOSITORY" | awk -F '/' '{print $2}' | tr '-' '_')
|
|
||||||
# dotnet nuget add source --name gitea --username $GITEA_USERNAME --password $GITEA_PASSWORD https://git.disi.dev/api/packages/$REPOSITORY_OWNER/nuget/index.json
|
|
||||||
# dotnet pack --include-symbols --include-source -p:PackageVersion=$(cat $REPOSITORY_NAME/VERSION) project_name.sln
|
|
||||||
# dotnet nuget push --source gitea $REPOSITORY_NAME/bin/Release/$REPOSITORY_NAME.$(cat $REPOSITORY_NAME/VERSION).nupkg
|
|
||||||
# dotnet nuget push --source gitea $REPOSITORY_NAME/bin/Release/$REPOSITORY_NAME.$(cat $REPOSITORY_NAME/VERSION).symbols.nupkg
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
name: Rename the project from template
|
|
||||||
|
|
||||||
on: [push]
|
|
||||||
|
|
||||||
permissions: write-all
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
rename-project:
|
|
||||||
if: ${{ !endsWith (gitea.repository, 'Templates/Dotnet_Executable') }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
# by default, it uses a depth of 1
|
|
||||||
# this fetches all history so that we can read each commit
|
|
||||||
fetch-depth: 0
|
|
||||||
ref: ${{ gitea.head_ref }}
|
|
||||||
|
|
||||||
- run: echo "REPOSITORY_NAME=$(echo "$GITHUB_REPOSITORY" | awk -F '/' '{print $2}' | tr '-' '_')" >> $GITHUB_ENV
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- run: echo "REPOSITORY_URLNAME=$(echo "$GITHUB_REPOSITORY" | awk -F '/' '{print $2}')" >> $GITHUB_ENV
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- run: echo "REPOSITORY_OWNER=$(echo "$GITHUB_REPOSITORY" | awk -F '/' '{print $1}')" >> $GITHUB_ENV
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Is this still a template
|
|
||||||
id: is_template
|
|
||||||
run: echo "::set-output name=is_template::$(ls .gitea/template.yml &> /dev/null && echo true || echo false)"
|
|
||||||
|
|
||||||
- name: Rename the project
|
|
||||||
if: steps.is_template.outputs.is_template == 'true'
|
|
||||||
run: |
|
|
||||||
echo "Renaming the project with -a(author) ${{ env.REPOSITORY_OWNER }} -n(name) ${{ env.REPOSITORY_NAME }} -u(urlname) ${{ env.REPOSITORY_URLNAME }}"
|
|
||||||
.gitea/rename_project.sh -a ${{ env.REPOSITORY_OWNER }} -n ${{ env.REPOSITORY_NAME }} -u ${{ env.REPOSITORY_URLNAME }} -d "Awesome ${{ env.REPOSITORY_NAME }} created by ${{ env.REPOSITORY_OWNER }}"
|
|
||||||
|
|
||||||
- name: Remove renaming workflow
|
|
||||||
if: steps.is_template.outputs.is_template == 'true'
|
|
||||||
run: |
|
|
||||||
rm .gitea/workflows/rename_project.yml
|
|
||||||
rm .gitea/rename_project.sh
|
|
||||||
|
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
|
||||||
with:
|
|
||||||
commit_message: "✅ Ready to clone and code."
|
|
||||||
# commit_options: '--amend --no-edit'
|
|
||||||
push_options: --force
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
pull_request:
|
|
||||||
types: [opened, synchronize, reopened]
|
|
||||||
|
|
||||||
name: SonarQube Scan
|
|
||||||
jobs:
|
|
||||||
sonarqube:
|
|
||||||
name: SonarQube Trigger
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: ${{ !contains ('project_name', format('{0}_{1}', 'project', 'name')) }}
|
|
||||||
steps:
|
|
||||||
- name: Checking out
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
# Disabling shallow clone is recommended for improving relevancy of reporting
|
|
||||||
fetch-depth: 0
|
|
||||||
- name: SonarQube Scan
|
|
||||||
uses: sonarsource/sonarqube-scan-action@master
|
|
||||||
env:
|
|
||||||
SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
|
|
||||||
SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST }}
|
|
||||||
with:
|
|
||||||
args: >
|
|
||||||
-Dsonar.projectKey=project_name
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
**/bin
|
|
||||||
**/obj
|
|
||||||
.gitea/conventional_commits/tmp/*
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
# How to develop on this project
|
|
||||||
|
|
||||||
project_name welcomes contributions from the community.
|
|
||||||
|
|
||||||
**You need Dotnet 9!**
|
|
||||||
|
|
||||||
This instructions are for linux base systems. (Linux, MacOS, BSD, etc.)
|
|
||||||
## Setting up your own fork of this repo.
|
|
||||||
|
|
||||||
- On gitea interface click on `Fork` button.
|
|
||||||
- Clone your fork of this repo. `git clone git@git.disi.dev:YOUR_GIT_USERNAME/project_urlname.git`
|
|
||||||
- Enter the directory `cd project_urlname`
|
|
||||||
- Add upstream repo `git remote add upstream https://git.disi.dev/author_name/project_urlname`
|
|
||||||
|
|
||||||
## Run the tests to ensure everything is working
|
|
||||||
|
|
||||||
Run `make test` to run the tests.
|
|
||||||
|
|
||||||
## Create a new branch to work on your contribution
|
|
||||||
|
|
||||||
Run `git checkout -b my_contribution`
|
|
||||||
|
|
||||||
## Make your changes
|
|
||||||
|
|
||||||
Edit the files using your preferred editor. (we recommend VIM or VSCode)
|
|
||||||
|
|
||||||
## Format the code
|
|
||||||
|
|
||||||
Run `make fmt` to format the code.
|
|
||||||
|
|
||||||
## Lint the code
|
|
||||||
|
|
||||||
Run `make lint` to lint the code.
|
|
||||||
|
|
||||||
## Test your changes
|
|
||||||
|
|
||||||
Run `make test` to run the tests.
|
|
||||||
|
|
||||||
Ensure code coverage report shows `100%` coverage, add tests to your PR.
|
|
||||||
|
|
||||||
## Build the docs locally
|
|
||||||
|
|
||||||
Run `make docs` to build the docs.
|
|
||||||
|
|
||||||
Ensure your new changes are documented.
|
|
||||||
|
|
||||||
## Commit your changes
|
|
||||||
|
|
||||||
This project uses [conventional git commit messages](https://www.conventionalcommits.org/en/v1.0.0/).
|
|
||||||
|
|
||||||
Example: `fix(package): update setup.py arguments 🎉` (emojis are fine too)
|
|
||||||
|
|
||||||
## Push your changes to your fork
|
|
||||||
|
|
||||||
Run `git push origin my_contribution`
|
|
||||||
|
|
||||||
## Submit a pull request
|
|
||||||
|
|
||||||
On gitea interface, click on `Pull Request` button.
|
|
||||||
|
|
||||||
Wait CI to run and one of the developers will review your PR.
|
|
||||||
## Makefile utilities
|
|
||||||
|
|
||||||
This project comes with a `Makefile` that contains a number of useful utility.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
❯ make
|
|
||||||
Usage: make <target>
|
|
||||||
|
|
||||||
Targets:
|
|
||||||
help: ## Show the help.
|
|
||||||
fmt: ## Format code using black & isort.
|
|
||||||
test: lint ## Run tests and generate coverage report.
|
|
||||||
clean: ## Clean unused files.
|
|
||||||
release: ## Create a new tag for release.
|
|
||||||
docs: ## Build the documentation.
|
|
||||||
```
|
|
||||||
|
|
||||||
## Making a new release
|
|
||||||
|
|
||||||
This project uses [semantic versioning](https://semver.org/) and tags releases with `X.Y.Z`
|
|
||||||
Every time a new tag is created and pushed to the remote repo, gitea actions will
|
|
||||||
automatically create a new release on gitea.
|
|
||||||
|
|
||||||
To trigger a new release all you need to do is.
|
|
||||||
|
|
||||||
1. If you have changes to add to the repo
|
|
||||||
* Make your changes following the steps described above.
|
|
||||||
* Commit your changes following the [conventional git commit messages](https://www.conventionalcommits.org/en/v1.0.0/).
|
|
||||||
2. Run the tests to ensure everything is working.
|
|
||||||
4. Run `make release` to create a new tag and push it to the remote repo.
|
|
||||||
|
|
||||||
the `make release` will ask you the version number to create the tag, ex: type `0.1.1` when you are asked.
|
|
||||||
|
|
||||||
> **CAUTION**: The make release will change local changelog files and commit all the unstaged changes you have.
|
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
FROM mcr.microsoft.com/dotnet/runtime:9.0
|
|
||||||
COPY ./project_name/bin/Release/net9.0/ /app
|
|
||||||
WORKDIR /app
|
|
||||||
CMD ["project_name"]
|
|
||||||
|
|||||||
-13
@@ -1,13 +0,0 @@
|
|||||||
Changelog
|
|
||||||
=========
|
|
||||||
|
|
||||||
|
|
||||||
0.1.2 (2021-08-14)
|
|
||||||
------------------
|
|
||||||
- Fix release, README and windows CI. [Bruno Rocha]
|
|
||||||
- Release: version 0.1.0. [Bruno Rocha]
|
|
||||||
|
|
||||||
|
|
||||||
0.1.0 (2021-08-14)
|
|
||||||
------------------
|
|
||||||
- Add release command. [Bruno Rocha]
|
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
This is free and unencumbered software released into the public domain.
|
|
||||||
|
|
||||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
||||||
distribute this software, either in source code form or as a compiled
|
|
||||||
binary, for any purpose, commercial or non-commercial, and by any
|
|
||||||
means.
|
|
||||||
|
|
||||||
In jurisdictions that recognize copyright laws, the author or authors
|
|
||||||
of this software dedicate any and all copyright interest in the
|
|
||||||
software to the public domain. We make this dedication for the benefit
|
|
||||||
of the public at large and to the detriment of our heirs and
|
|
||||||
successors. We intend this dedication to be an overt act of
|
|
||||||
relinquishment in perpetuity of all present and future rights to this
|
|
||||||
software under copyright law.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
||||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
||||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
||||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
||||||
OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
For more information, please refer to <https://unlicense.org>
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
include LICENSE
|
|
||||||
include HISTORY.md
|
|
||||||
include Containerfile
|
|
||||||
graft tests
|
|
||||||
graft project_name
|
|
||||||
|
|||||||
@@ -1,59 +0,0 @@
|
|||||||
.ONESHELL:
|
|
||||||
|
|
||||||
.PHONY: issetup
|
|
||||||
issetup:
|
|
||||||
@[ -f .git/hooks/commit-msg ] || [ -v SKIP_MAKE_SETUP_CHECK ] || (echo "You must run 'make setup' first to initialize the repo!" && exit 1)
|
|
||||||
|
|
||||||
.PHONY: setup
|
|
||||||
setup:
|
|
||||||
@cp .gitea/conventional_commits/commit-msg .git/hooks/
|
|
||||||
|
|
||||||
.PHONY: help
|
|
||||||
help: ## Show the help.
|
|
||||||
@echo "Usage: make <target>"
|
|
||||||
@echo ""
|
|
||||||
@echo "Targets:"
|
|
||||||
@fgrep "##" Makefile | fgrep -v fgrep
|
|
||||||
|
|
||||||
.PHONY: buildrel
|
|
||||||
buildrel: issetup ## Format code.
|
|
||||||
dotnet build -c Release project_name.sln
|
|
||||||
|
|
||||||
.PHONY: build
|
|
||||||
build: issetup ## Format code.
|
|
||||||
dotnet build project_name.sln
|
|
||||||
|
|
||||||
.PHONY: publish
|
|
||||||
publish: issetup ## Format code.
|
|
||||||
dotnet publish -c Release project_name.sln
|
|
||||||
|
|
||||||
.PHONY: fmt
|
|
||||||
fmt: issetup ## Format code.
|
|
||||||
dotnet format project_name.sln
|
|
||||||
|
|
||||||
.PHONY: lint
|
|
||||||
lint: issetup ## Lint code.
|
|
||||||
dotnet format --verify-no-changes --verbosity diagnostic project_name.sln
|
|
||||||
|
|
||||||
.PHONY: test
|
|
||||||
test: issetup ## Run tests and generate coverage report.
|
|
||||||
dotnet test project_name.sln
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
clean: issetup ## Clean unused files.
|
|
||||||
dotnet clean project_name.sln
|
|
||||||
|
|
||||||
.PHONY: release
|
|
||||||
release: issetup ## Create a new tag for release.
|
|
||||||
@./.gitea/conventional_commits/generate-version.sh
|
|
||||||
|
|
||||||
.PHONY: docs
|
|
||||||
docs: issetup ## Build the documentation.
|
|
||||||
@echo "building documentation ..."
|
|
||||||
@mkdocs build
|
|
||||||
@URL="site/index.html"; xdg-open $$URL || sensible-browser $$URL || x-www-browser $$URL || gnome-open $$URL || open $$URL
|
|
||||||
|
|
||||||
# This project has been generated from rochacbruno/python-project-template
|
|
||||||
# __author__ = 'rochacbruno'
|
|
||||||
# __repo__ = https://github.com/rochacbruno/python-project-template
|
|
||||||
# __sponsor__ = https://github.com/sponsors/rochacbruno/
|
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
|
|
||||||
# Dotnet Project Template
|
|
||||||
|
|
||||||
A low dependency and really simple to start project template for Python Projects.
|
|
||||||
|
|
||||||
See also
|
|
||||||
- [Dotnet-Library-Template](https://git.disi.dev/Templates/Dotnet_Library/) for a library template.
|
|
||||||
|
|
||||||
### HOW TO USE THIS TEMPLATE
|
|
||||||
|
|
||||||
1. Create a new repository from this template and choose a name for your project
|
|
||||||
(e.g. `my_awesome_project` - recommendation is to use underscores separation for repo names.)
|
|
||||||
2. Wait until the first run of CI finishes (Gitea Actions will process the template and commit to your new repo)
|
|
||||||
3. Read the file [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
||||||
4. Then clone your new project and happy coding!
|
|
||||||
|
|
||||||
> **NOTE**: **WAIT** until first CI run on gitea actions before cloning your new project.
|
|
||||||
|
|
||||||
### What is included on this template?
|
|
||||||
|
|
||||||
- 🖼️ Templates for starting multiple application types:
|
|
||||||
**Run `make init` after cloning to generate a new project based on a template.**
|
|
||||||
- 🤖 A [Makefile](Makefile) with the most useful commands to install, test, lint, format and release your project.
|
|
||||||
- 📃 Documentation structure using [mkdocs](http://www.mkdocs.org)
|
|
||||||
- 💬 Auto generation of change log using **gitchangelog** to keep a HISTORY.md file automatically based on your commit history on every release.
|
|
||||||
- 🐋 A simple [Containerfile](Containerfile) to build a container image for your project.
|
|
||||||
`Containerfile` is a more open standard for building container images than Dockerfile, you can use buildah or docker with this file.
|
|
||||||
- 🧪 Testing structure
|
|
||||||
- ✅ Code linting
|
|
||||||
- 🎯 Entry points to execute your program with basic CLI argument parsing.
|
|
||||||
- 🔄 Continuous integration using [Gitea Actions](.gitea/workflows/) with jobs to lint, test and release your project on Linux, Mac and Windows environments.
|
|
||||||
|
|
||||||
<!-- DELETE THE LINES ABOVE THIS AND WRITE YOUR PROJECT README BELOW -->
|
|
||||||
|
|
||||||
---
|
|
||||||
# project_name
|
|
||||||
|
|
||||||
project_description
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
TODO: dotnet sample code on usage
|
|
||||||
|
|
||||||
## Development
|
|
||||||
|
|
||||||
Read the [CONTRIBUTING.md](CONTRIBUTING.md) file.
|
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
# Welcome to MkDocs
|
|
||||||
|
|
||||||
For full documentation visit [mkdocs.org](https://www.mkdocs.org).
|
|
||||||
|
|
||||||
## Commands
|
|
||||||
|
|
||||||
* `mkdocs new [dir-name]` - Create a new project.
|
|
||||||
* `mkdocs serve` - Start the live-reloading docs server.
|
|
||||||
* `mkdocs build` - Build the documentation site.
|
|
||||||
* `mkdocs -h` - Print help message and exit.
|
|
||||||
|
|
||||||
## Project layout
|
|
||||||
|
|
||||||
mkdocs.yml # The configuration file.
|
|
||||||
docs/
|
|
||||||
index.md # The documentation homepage.
|
|
||||||
... # Other markdown pages, images and other files.
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
site_name: project_name
|
|
||||||
theme: readthedocs
|
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<configuration>
|
|
||||||
<packageSources>
|
|
||||||
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
|
|
||||||
<clear />
|
|
||||||
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
|
|
||||||
<add key="gitea-projects" value="https://git.disi.dev/api/packages/Projects/nuget/index.json" />
|
|
||||||
<add key="gitea-homelab" value="https://git.disi.dev/api/packages/Homelab/nuget/index.json" />
|
|
||||||
<add key="gitea-artifacts" value="https://git.disi.dev/api/packages/Artifacts/nuget/index.json" />
|
|
||||||
</packageSources>
|
|
||||||
</configuration>
|
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
namespace project_name.Tests;
|
|
||||||
|
|
||||||
using project_name;
|
|
||||||
|
|
||||||
public class UnitTest1
|
|
||||||
{
|
|
||||||
[Fact]
|
|
||||||
public void Test1()
|
|
||||||
{
|
|
||||||
Assert.True(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
<IsPackable>false</IsPackable>
|
|
||||||
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="../project_name/project_name.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="coverlet.collector" Version="6.0.2" />
|
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
|
||||||
<PackageReference Include="xunit" Version="2.9.2" />
|
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Using Include="Xunit" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.0.31903.59
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "project_name", "project_name\project_name.csproj", "{B25F5E39-D0A6-4548-A3B6-428275AB154D}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "project_name.Tests", "project_name.Tests\project_name.Tests.csproj", "{FD1B8A2E-3BA7-4FDD-96FB-18551A15A5F3}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{B25F5E39-D0A6-4548-A3B6-428275AB154D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{B25F5E39-D0A6-4548-A3B6-428275AB154D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{B25F5E39-D0A6-4548-A3B6-428275AB154D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{B25F5E39-D0A6-4548-A3B6-428275AB154D}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{FD1B8A2E-3BA7-4FDD-96FB-18551A15A5F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{FD1B8A2E-3BA7-4FDD-96FB-18551A15A5F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{FD1B8A2E-3BA7-4FDD-96FB-18551A15A5F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{FD1B8A2E-3BA7-4FDD-96FB-18551A15A5F3}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
using CommandLine;
|
|
||||||
|
|
||||||
class Program
|
|
||||||
{
|
|
||||||
public class Options
|
|
||||||
{
|
|
||||||
[Option('v', "verbose", Required = false, HelpText = "Set output to verbose messages.")]
|
|
||||||
public bool Verbose { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Main(string[] args)
|
|
||||||
{
|
|
||||||
Parser.Default.ParseArguments<Options>(args)
|
|
||||||
.WithParsed<Options>(o =>
|
|
||||||
{
|
|
||||||
if (o.Verbose)
|
|
||||||
{
|
|
||||||
Console.WriteLine($"Verbose output enabled. Current Arguments: -v {o.Verbose}");
|
|
||||||
Console.WriteLine("Quick Start Example! App is in Verbose mode!");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine($"Current Arguments: -v {o.Verbose}");
|
|
||||||
Console.WriteLine("Quick Start Example!");
|
|
||||||
}
|
|
||||||
|
|
||||||
EntryPoint(o);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
static void EntryPoint(Options o)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Hello world!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
0.1.0
|
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="CommandLineParser" Version="2.9.1" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
|
|||||||
Reference in New Issue
Block a user