From 66d3ef11eedf1d65877b36c06d651553772c20a4 Mon Sep 17 00:00:00 2001 From: neoscie Date: Wed, 14 Jun 2023 09:30:17 +0200 Subject: [PATCH 1/3] Add release-it to project to prepare for V3 --- .github/workflows/create-release.yml | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/create-release.yml diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml new file mode 100644 index 0000000..0200651 --- /dev/null +++ b/.github/workflows/create-release.yml @@ -0,0 +1,67 @@ +name: Create Release + +on: + workflow_dispatch: + inputs: + version_type: + type: choice + description: Semantic Version Type + options: + - major + - minor + - patch + - no-version-update + + pre_release: + type: choice + description: Pre Release? + options: + - stable + - alpha + - beta + - rc + +jobs: + release-it: + runs-on: ubuntu-latest + steps: + - uses: tibdex/github-app-token@v1 + id: generate-token + with: + app_id: ${{ secrets.RELEASE_BOT_APP_ID }} + private_key: ${{ secrets.RELEASE_BOT_APP_PRIVATE_KEY }} + + - name: checkout + uses: actions/checkout@v3 + with: + token: ${{ steps.generate-token.outputs.token }} + # we need everything so release-it can compare the current version with the latest tag + fetch-depth: 0 + + - name: initialize mandatory git config + run: | + git config user.name "GitHub Release Bot" + git config user.email release-bot@neolution.ch + + - name: install @release-it/keep-a-changelog + run: npm install -g release-it @release-it/keep-a-changelog + + - name: run release-it + run: | + params=() + + if [[ ${{ github.event.inputs.version_type }} != "no-version-update" ]]; then + params+=(${{ github.event.inputs.version_type }}) + fi + + if [[ ${{ github.event.inputs.pre_release }} != "stable" ]]; then + params+=(--preRelease=${{ github.event.inputs.pre_release }}) + params+=(--plugins.@release-it/keep-a-changelog.keepUnreleased) + params+=(--no-plugins.@release-it/keep-a-changelog.strictLatest) + fi + + params+=(--ci) + + release-it -y "${params[@]}" + env: + GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} From 9e3f245431fbe91525a7e51c758e36dcdcfc7310 Mon Sep 17 00:00:00 2001 From: neoscie Date: Wed, 14 Jun 2023 10:03:38 +0200 Subject: [PATCH 2/3] Update create-release.yml --- .github/workflows/create-release.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 0200651..4fdc3c0 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -65,3 +65,27 @@ jobs: release-it -y "${params[@]}" env: GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} + + - name: Get next release number + run: | + echo "RELEASE_VERSION=$(release-it --release-version --dry-run)" >> $GITHUB_ENV + + - name: Print release version + run: echo "The next release number is ${{ env.RELEASE_VERSION }}" + + - name: Replace version number in nuspec files + run: 'sed -i -e "s/{{NuGetVersion}}/$GITVERSION_NUGETVERSION/g" *.nuspec' + + - name: Setup NuGet.exe for use with actions + uses: NuGet/setup-nuget@v1.0.5 + + - name: Create main package + run: nuget pack Neolution.CodeAnalysis.nuspec + + - name: Create TestsRuleset package + run: nuget pack Neolution.CodeAnalysis.TestsRuleset.nuspec + + - name: Push all packages to Nuget.org + run: dotnet nuget push --skip-duplicate -s $ARTIFACTS_FEED_URL -k $NUGET_AUTH_TOKEN **/*.nupkg + env: + NUGET_AUTH_TOKEN: ${{ secrets.NUGET_API_KEY_NEOLUTION }} From 1c4b3035354303abdefc287e381433dc4354c6c8 Mon Sep 17 00:00:00 2001 From: Sandro Ciervo Date: Wed, 14 Jun 2023 10:15:59 +0200 Subject: [PATCH 3/3] Add .release-it.json configuration --- .release-it.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .release-it.json diff --git a/.release-it.json b/.release-it.json new file mode 100644 index 0000000..3f22ba4 --- /dev/null +++ b/.release-it.json @@ -0,0 +1,23 @@ +{ + "git": { + "push": true + }, + "npm": { + "publish": false, + "skipChecks": true + }, + "github": { + "release": true + }, + "plugins": { + "@release-it/keep-a-changelog": { + "filename": "CHANGELOG.md", + "addVersionUrl": true, + "addUnreleased": true, + "strictLatest": false + } + }, + "hooks": { + "before:git:release": "npx prettier -y --write CHANGELOG.md && git add CHANGELOG.md" + } +} \ No newline at end of file