Skip to content

Commit 0a9b249

Browse files
committed
refactor: rename get-build-number job to get-version and update version extraction logic
1 parent 5f9399a commit 0a9b249

1 file changed

Lines changed: 32 additions & 46 deletions

File tree

.github/workflows/flutter-ci.yml

Lines changed: 32 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)