4848
4949 echo "result=true" >> $GITHUB_OUTPUT
5050
51- has-changes :
51+ check-version :
5252 needs : [validate]
5353 if : needs.validate.outputs.result == 'true'
5454 runs-on : ubuntu-latest
@@ -59,32 +59,64 @@ jobs:
5959
6060 steps :
6161 - uses : actions/checkout@v4
62-
63- - uses : ./.github/actions/has-changes
64- id : has-changes-module
6562 with :
66- project : EncryptedConfigValue.Module
63+ fetch-depth : 0
6764
68- - uses : ./.github/actions/has-changes
69- id : has-changes-aspnetcore
70- with :
71- project : EncryptedConfigValue.AspNetCore
65+ - name : Check Module Version
66+ id : check-module
67+ shell : pwsh
68+ run : |
69+ $lastVersionTag = (git tag -l "EncryptedConfigValue.Module/*" | Sort-Object { [version]($_ -split '/' | Select-Object -Last 1) } | Select-Object -Last 1) -split '/' | Select-Object -Last 1
70+ $nuspecVersion = (Select-String -Path .\EncryptedConfigValue.Module\EncryptedConfigValue.Module.nuspec -Pattern '<version>(.*?)</version>' | ForEach-Object { $_.Matches.Groups[1].Value })
71+
72+ if ($lastVersionTag) {
73+ $isNewer = [version]$nuspecVersion -gt [version]$lastVersionTag
74+ } else {
75+ $isNewer = $true
76+ }
77+
78+ "result=$($isNewer.ToString().ToLowerInvariant())" >> $env:GITHUB_OUTPUT
7279
73- - uses : ./.github/actions/has-changes
74- id : has-changes-cli
75- with :
76- project : EncryptedConfigValue.Cli
80+ - name : Check AspNetCore Version
81+ id : check-aspnetcore
82+ shell : pwsh
83+ run : |
84+ $lastVersionTag = (git tag -l "EncryptedConfigValue.AspNetCore/*" | Sort-Object { [version]($_ -split '/' | Select-Object -Last 1) } | Select-Object -Last 1) -split '/' | Select-Object -Last 1
85+ $nuspecVersion = (Select-String -Path .\EncryptedConfigValue.AspNetCore\EncryptedConfigValue.AspNetCore.nuspec -Pattern '<version>(.*?)</version>' | ForEach-Object { $_.Matches.Groups[1].Value })
86+
87+ if ($lastVersionTag) {
88+ $isNewer = [version]$nuspecVersion -gt [version]$lastVersionTag
89+ } else {
90+ $isNewer = $true
91+ }
92+
93+ "result=$($isNewer.ToString().ToLowerInvariant())" >> $env:GITHUB_OUTPUT
94+
95+ - name : Check CLI Version
96+ id : check-cli
97+ shell : pwsh
98+ run : |
99+ $lastVersionTag = (git tag -l "EncryptedConfigValue.Cli/*" | Sort-Object { [version]($_ -split '/' | Select-Object -Last 1) } | Select-Object -Last 1) -split '/' | Select-Object -Last 1
100+ $nuspecVersion = (Select-String -Path .\EncryptedConfigValue.Cli\EncryptedConfigValue.Cli.nuspec -Pattern '<version>(.*?)</version>' | ForEach-Object { $_.Matches.Groups[1].Value })
101+
102+ if ($lastVersionTag) {
103+ $isNewer = [version]$nuspecVersion -gt [version]$lastVersionTag
104+ } else {
105+ $isNewer = $true
106+ }
107+
108+ "result=$($isNewer.ToString().ToLowerInvariant())" >> $env:GITHUB_OUTPUT
77109
78110 - name : Finalize
79111 id : finalize
80112 run : |
81- echo "module=${{ steps.has-changes -module.outputs.result }}" >> $GITHUB_OUTPUT
82- echo "aspnetcore=${{ steps.has-changes -aspnetcore.outputs.result }}" >> $GITHUB_OUTPUT
83- echo "cli=${{ steps.has-changes -cli.outputs.result }}" >> $GITHUB_OUTPUT
113+ echo "module=${{ steps.check -module.outputs.result }}" >> $GITHUB_OUTPUT
114+ echo "aspnetcore=${{ steps.check -aspnetcore.outputs.result }}" >> $GITHUB_OUTPUT
115+ echo "cli=${{ steps.check -cli.outputs.result }}" >> $GITHUB_OUTPUT
84116
85117 test :
86- needs : [has-changes ]
87- if : needs.has-changes .outputs.module == 'true' || needs.has-changes .outputs.aspnetcore == 'true' || needs.has-changes .outputs.cli == 'true'
118+ needs : [check-version ]
119+ if : needs.check-version .outputs.module == 'true' || needs.check-version .outputs.aspnetcore == 'true' || needs.check-version .outputs.cli == 'true'
88120 runs-on : ubuntu-latest
89121 outputs :
90122 result : ${{ steps.test.outputs.result }}
@@ -107,8 +139,8 @@ jobs:
107139 fi
108140
109141 validate-module :
110- needs : [has-changes , test]
111- if : needs.has-changes .outputs.module == 'true'
142+ needs : [check-version , test]
143+ if : needs.check-version .outputs.module == 'true'
112144 runs-on : ubuntu-latest
113145 outputs :
114146 result : ${{ steps.validate.outputs.result }}
@@ -138,8 +170,8 @@ jobs:
138170 echo "result=true" >> $GITHUB_OUTPUT
139171
140172 validate-aspnetcore :
141- needs : [has-changes , test]
142- if : needs.has-changes .outputs.aspnetcore == 'true'
173+ needs : [check-version , test]
174+ if : needs.check-version .outputs.aspnetcore == 'true'
143175 runs-on : ubuntu-latest
144176 outputs :
145177 result : ${{ steps.validate.outputs.result }}
@@ -169,8 +201,8 @@ jobs:
169201 echo "result=true" >> $GITHUB_OUTPUT
170202
171203 validate-cli :
172- needs : [has-changes , test]
173- if : needs.has-changes .outputs.cli == 'true'
204+ needs : [check-version , test]
205+ if : needs.check-version .outputs.cli == 'true'
174206 runs-on : ubuntu-latest
175207 outputs :
176208 result : ${{ steps.validate.outputs.result }}
0 commit comments