@@ -71,28 +71,38 @@ jobs:
7171 xvfb-run flutter test integration_test/app_test.dart -d linux -r github
7272
7373
74- get-build-number :
74+ get-version :
7575 runs-on : ubuntu-latest
7676 outputs :
77- build_number : ${{ steps.get_build_number.outputs.build_number }}
77+ version : ${{ steps.extract.outputs.version }}
78+ version_base : ${{ steps.extract.outputs.version_base }}
79+ build_number : ${{ steps.extract.outputs.build_number }}
7880
7981 steps :
8082 - name : Checkout code
8183 uses : actions/checkout@v4
8284
83- - name : Get build number from git
84- id : get_build_number
85- run : echo "build_number=$(git rev-list --count HEAD -- .)" >> $GITHUB_OUTPUT
85+ - name : Extract version & build number
86+ id : extract
87+ run : |
88+ # read base version from pubspec (client folder)
89+ VERSION_BASE=$(grep '^version:' client/pubspec.yaml | head -n1 | awk '{print $2}' | cut -d'+' -f1)
90+ BUILD_NUM=$(git rev-list --count HEAD -- client)
91+ VERSION_PLUS="${VERSION_BASE}+${BUILD_NUM}"
92+ echo "version_base=${VERSION_BASE}" >> $GITHUB_OUTPUT
93+ echo "build_number=${BUILD_NUM}" >> $GITHUB_OUTPUT
94+ echo "version=${VERSION_PLUS}" >> $GITHUB_OUTPUT
8695
8796
8897 build-apk :
89- needs : [test, get-build-number ]
98+ needs : [test, get-version ]
9099 runs-on : ubuntu-latest
91100 defaults :
92101 run :
93102 working-directory : ${{ env.FLUTTER_WORKING_DIR }}
94103 outputs :
95- version : ${{ steps.get_version.outputs.version }}
104+ version : ${{ needs.get-version.outputs.version }}
105+ version_base : ${{ needs.get-version.outputs.version_base }}
96106
97107 steps :
98108 - name : Checkout code
@@ -156,36 +166,28 @@ jobs:
156166 - name : Get Flutter dependencies
157167 run : flutter pub get
158168
159- - name : Get version from pubspec.yaml
160- id : get_version
161- run : |
162- VERSION=$(grep '^version:' pubspec.yaml | head -n1 | awk '{print $2}' | cut -d'+' -f1)
163- # append build number from previous job
164- VERSION_PLUS="${VERSION}+${{ needs.get-build-number.outputs.build_number }}"
165- echo "version=${VERSION_PLUS}" >> $GITHUB_OUTPUT
166-
167169 - name : Build APK
168- run : flutter build apk --release --target-platform android-arm64 --build-number ${{ needs.get-build-number .outputs.build_number }}
170+ run : flutter build apk --release --target-platform android-arm64 --build-number ${{ needs.get-version .outputs.build_number }}
169171
170172 - name : Rename APK with version
171173 run : |
172174 mv build/app/outputs/flutter-apk/app-release.apk \
173- build/app/outputs/flutter-apk/borneo-app-ce-${{ steps.get_version .outputs.version }}.apk
175+ build/app/outputs/flutter-apk/borneo-app-ce-${{ needs.get-version .outputs.version }}.apk
174176
175177 - name : Upload APK artifact
176178 uses : actions/upload-artifact@v4
177179 with :
178- name : borneo-app-ce-${{ steps.get_version .outputs.version }}
179- path : ${{ github.workspace }}/${{ env.FLUTTER_WORKING_DIR }}/build/app/outputs/flutter-apk/borneo-app-ce-${{ steps.get_version .outputs.version }}.apk
180+ name : borneo-app-ce-${{ needs.get-version .outputs.version }}
181+ path : ${{ github.workspace }}/${{ env.FLUTTER_WORKING_DIR }}/build/app/outputs/flutter-apk/borneo-app-ce-${{ needs.get-version .outputs.version }}.apk
180182
181183 build-windows :
182- needs : [test, get-build-number ]
184+ needs : [test, get-version ]
183185 runs-on : windows-latest
184186 defaults :
185187 run :
186188 working-directory : ${{ env.FLUTTER_WORKING_DIR }}
187189 outputs :
188- version : ${{ steps.get_version .outputs.version }}
190+ version : ${{ needs.get-version .outputs.version }}
189191
190192 steps :
191193 - name : Checkout code
@@ -232,36 +234,27 @@ jobs:
232234 - name : Get Flutter dependencies
233235 run : flutter pub get
234236
235- - name : Get version from pubspec.yaml
236- id : get_version
237- run : |
238- $version = (Select-String -Path pubspec.yaml -Pattern '^version:' | Select-Object -First 1).Line.Split(':')[1].Trim().Split('+')[0]
239- # append build number from previous job
240- $build = "${{ needs.get-build-number.outputs.build_number }}"
241- $versionPlus = "${version}+${build}"
242- echo "version=$versionPlus" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
243-
244237 - name : Build Windows executable
245- run : flutter build windows --release --build-number ${{ needs.get-build-number .outputs.build_number }}
238+ run : flutter build windows --release --build-number ${{ needs.get-version .outputs.build_number }}
246239
247240 - name : Create and zip Windows release
248241 run : |
249- pwsh ./scripts/windows-dist-pack.ps1 ce-${{ steps.get_version .outputs.version }}
242+ pwsh ./scripts/windows-dist-pack.ps1 ce-${{ needs.get-version .outputs.version }}
250243
251244 - name : Upload Windows zip artifact
252245 uses : actions/upload-artifact@v4
253246 with :
254- name : borneo-app-ce-${{ steps.get_version .outputs.version }}-windows-x64
255- path : client/build/windows/dist/borneo-app-ce-${{ steps.get_version .outputs.version }}-windows-x64.zip
247+ name : borneo-app-ce-${{ needs.get-version .outputs.version }}-windows-x64
248+ path : client/build/windows/dist/borneo-app-ce-${{ needs.get-version .outputs.version }}-windows-x64.zip
256249
257250 build-ios :
258- needs : [test, get-build-number ]
251+ needs : [test, get-version ]
259252 runs-on : macos-14
260253 defaults :
261254 run :
262255 working-directory : ${{ env.FLUTTER_WORKING_DIR }}
263256 outputs :
264- version : ${{ steps.get_version .outputs.version }}
257+ version : ${{ needs.get-version .outputs.version }}
265258
266259 steps :
267260 - name : Checkout code
@@ -302,15 +295,8 @@ jobs:
302295 - name : Get Flutter dependencies
303296 run : flutter pub get
304297
305- - name : Get version from pubspec.yaml
306- id : get_version
307- run : |
308- VERSION=$(grep '^version:' pubspec.yaml | head -n1 | awk '{print $2}' | cut -d'+' -f1)
309- VERSION_PLUS="${VERSION}+${{ needs.get-build-number.outputs.build_number }}"
310- echo "version=${VERSION_PLUS}" >> $GITHUB_OUTPUT
311-
312298 - name : Build iOS app (no codesign)
313- run : flutter build ios --release --no-codesign --build-number ${{ needs.get-build-number .outputs.build_number }}
299+ run : flutter build ios --release --no-codesign --build-number ${{ needs.get-version .outputs.build_number }}
314300
315301 release :
316302 needs : [build-apk, build-windows, build-ios]
@@ -336,8 +322,8 @@ jobs:
336322 - name : Create Versionized GitHub Release
337323 uses : softprops/action-gh-release@v2
338324 with :
339- tag_name : app-ce-v${{ needs.build-apk.outputs.version }}
340- name : Borneo-IoT App Release app-ce-v${{ needs.build-apk.outputs.version }}
325+ tag_name : app-ce-v${{ needs.build-apk.outputs.version_base }}
326+ name : Borneo-IoT App Release app-ce-v${{ needs.build-apk.outputs.version_base }}
341327 draft : false
342328 overwrite_files : true
343329 prerelease : ${{ steps.set_prerelease.outputs.prerelease }}
0 commit comments