From 859ae7d4a26a540a03385591ac99429e287aa46c Mon Sep 17 00:00:00 2001 From: "piotr.a.michalewicz@gmail.com" Date: Wed, 4 Feb 2026 19:58:09 +0100 Subject: [PATCH] check versions instead changes --- .github/workflows/auto-release.yml | 80 +++++++++++++++++++++--------- 1 file changed, 56 insertions(+), 24 deletions(-) diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 9465e89..f69832c 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -48,7 +48,7 @@ jobs: echo "result=true" >> $GITHUB_OUTPUT - has-changes: + check-version: needs: [validate] if: needs.validate.outputs.result == 'true' runs-on: ubuntu-latest @@ -59,32 +59,64 @@ jobs: steps: - uses: actions/checkout@v4 - - - uses: ./.github/actions/has-changes - id: has-changes-module with: - project: EncryptedConfigValue.Module + fetch-depth: 0 - - uses: ./.github/actions/has-changes - id: has-changes-aspnetcore - with: - project: EncryptedConfigValue.AspNetCore + - name: Check Module Version + id: check-module + shell: pwsh + run: | + $lastVersionTag = (git tag -l "EncryptedConfigValue.Module/*" | Sort-Object { [version]($_ -split '/' | Select-Object -Last 1) } | Select-Object -Last 1) -split '/' | Select-Object -Last 1 + $nuspecVersion = (Select-String -Path .\EncryptedConfigValue.Module\EncryptedConfigValue.Module.nuspec -Pattern '(.*?)' | ForEach-Object { $_.Matches.Groups[1].Value }) + + if ($lastVersionTag) { + $isNewer = [version]$nuspecVersion -gt [version]$lastVersionTag + } else { + $isNewer = $true + } + + "result=$($isNewer.ToString().ToLowerInvariant())" >> $env:GITHUB_OUTPUT - - uses: ./.github/actions/has-changes - id: has-changes-cli - with: - project: EncryptedConfigValue.Cli + - name: Check AspNetCore Version + id: check-aspnetcore + shell: pwsh + run: | + $lastVersionTag = (git tag -l "EncryptedConfigValue.AspNetCore/*" | Sort-Object { [version]($_ -split '/' | Select-Object -Last 1) } | Select-Object -Last 1) -split '/' | Select-Object -Last 1 + $nuspecVersion = (Select-String -Path .\EncryptedConfigValue.AspNetCore\EncryptedConfigValue.AspNetCore.nuspec -Pattern '(.*?)' | ForEach-Object { $_.Matches.Groups[1].Value }) + + if ($lastVersionTag) { + $isNewer = [version]$nuspecVersion -gt [version]$lastVersionTag + } else { + $isNewer = $true + } + + "result=$($isNewer.ToString().ToLowerInvariant())" >> $env:GITHUB_OUTPUT + + - name: Check CLI Version + id: check-cli + shell: pwsh + run: | + $lastVersionTag = (git tag -l "EncryptedConfigValue.Cli/*" | Sort-Object { [version]($_ -split '/' | Select-Object -Last 1) } | Select-Object -Last 1) -split '/' | Select-Object -Last 1 + $nuspecVersion = (Select-String -Path .\EncryptedConfigValue.Cli\EncryptedConfigValue.Cli.nuspec -Pattern '(.*?)' | ForEach-Object { $_.Matches.Groups[1].Value }) + + if ($lastVersionTag) { + $isNewer = [version]$nuspecVersion -gt [version]$lastVersionTag + } else { + $isNewer = $true + } + + "result=$($isNewer.ToString().ToLowerInvariant())" >> $env:GITHUB_OUTPUT - name: Finalize id: finalize run: | - echo "module=${{ steps.has-changes-module.outputs.result }}" >> $GITHUB_OUTPUT - echo "aspnetcore=${{ steps.has-changes-aspnetcore.outputs.result }}" >> $GITHUB_OUTPUT - echo "cli=${{ steps.has-changes-cli.outputs.result }}" >> $GITHUB_OUTPUT + echo "module=${{ steps.check-module.outputs.result }}" >> $GITHUB_OUTPUT + echo "aspnetcore=${{ steps.check-aspnetcore.outputs.result }}" >> $GITHUB_OUTPUT + echo "cli=${{ steps.check-cli.outputs.result }}" >> $GITHUB_OUTPUT test: - needs: [has-changes] - if: needs.has-changes.outputs.module == 'true' || needs.has-changes.outputs.aspnetcore == 'true' || needs.has-changes.outputs.cli == 'true' + needs: [check-version] + if: needs.check-version.outputs.module == 'true' || needs.check-version.outputs.aspnetcore == 'true' || needs.check-version.outputs.cli == 'true' runs-on: ubuntu-latest outputs: result: ${{ steps.test.outputs.result }} @@ -107,8 +139,8 @@ jobs: fi validate-module: - needs: [has-changes, test] - if: needs.has-changes.outputs.module == 'true' + needs: [check-version, test] + if: needs.check-version.outputs.module == 'true' runs-on: ubuntu-latest outputs: result: ${{ steps.validate.outputs.result }} @@ -138,8 +170,8 @@ jobs: echo "result=true" >> $GITHUB_OUTPUT validate-aspnetcore: - needs: [has-changes, test] - if: needs.has-changes.outputs.aspnetcore == 'true' + needs: [check-version, test] + if: needs.check-version.outputs.aspnetcore == 'true' runs-on: ubuntu-latest outputs: result: ${{ steps.validate.outputs.result }} @@ -169,8 +201,8 @@ jobs: echo "result=true" >> $GITHUB_OUTPUT validate-cli: - needs: [has-changes, test] - if: needs.has-changes.outputs.cli == 'true' + needs: [check-version, test] + if: needs.check-version.outputs.cli == 'true' runs-on: ubuntu-latest outputs: result: ${{ steps.validate.outputs.result }}