Skip to content

Commit 884b868

Browse files
feat(workflows): Add CI workflow for building PR artifacts across platforms
1 parent af7fb6b commit 884b868

File tree

3 files changed

+144
-60
lines changed

3 files changed

+144
-60
lines changed
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
name: Build PR Artifacts
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- synchronize
8+
- reopened
9+
- ready_for_review
10+
11+
permissions:
12+
contents: read
13+
14+
concurrency:
15+
group: pr-build-artifacts-${{ github.event.pull_request.number || github.ref }}
16+
cancel-in-progress: true
17+
18+
env:
19+
APP_DIR: open_wearable
20+
21+
jobs:
22+
build_ubuntu_targets:
23+
name: Build Android, Linux, and Web
24+
runs-on: ubuntu-latest
25+
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@v4
29+
30+
- name: Set up Java
31+
uses: actions/setup-java@v4
32+
with:
33+
distribution: zulu
34+
java-version: "17"
35+
cache: gradle
36+
37+
- name: Install Linux build dependencies
38+
run: |
39+
sudo apt-get update
40+
sudo apt-get install -y \
41+
clang \
42+
cmake \
43+
libgtk-3-dev \
44+
ninja-build \
45+
pkg-config
46+
47+
- name: Read Flutter version
48+
run: echo "flutter_version=$(cat $APP_DIR/.flutter_version)" >> "$GITHUB_ENV"
49+
50+
- name: Set up Flutter
51+
uses: subosito/flutter-action@v2
52+
with:
53+
channel: stable
54+
flutter-version: ${{ env.flutter_version }}
55+
cache: true
56+
57+
- name: Install dependencies
58+
working-directory: ${{ env.APP_DIR }}
59+
run: flutter pub get
60+
61+
- name: Analyze project
62+
working-directory: ${{ env.APP_DIR }}
63+
run: flutter analyze
64+
65+
- name: Build Android APK
66+
working-directory: ${{ env.APP_DIR }}
67+
run: flutter build apk --release
68+
69+
- name: Build Linux bundle
70+
working-directory: ${{ env.APP_DIR }}
71+
run: flutter build linux --release
72+
73+
- name: Build Web bundle
74+
working-directory: ${{ env.APP_DIR }}
75+
run: flutter build web --release
76+
77+
- name: Upload Android APK
78+
uses: actions/upload-artifact@v4
79+
with:
80+
name: android-apk
81+
path: open_wearable/build/app/outputs/flutter-apk/app-release.apk
82+
if-no-files-found: error
83+
84+
- name: Upload Linux bundle
85+
uses: actions/upload-artifact@v4
86+
with:
87+
name: linux-bundle
88+
path: open_wearable/build/linux/x64/release/bundle
89+
if-no-files-found: error
90+
91+
- name: Upload Web bundle
92+
uses: actions/upload-artifact@v4
93+
with:
94+
name: web-bundle
95+
path: open_wearable/build/web
96+
if-no-files-found: error
97+
98+
build_windows_target:
99+
name: Build Windows
100+
runs-on: windows-latest
101+
102+
steps:
103+
- name: Checkout repository
104+
uses: actions/checkout@v4
105+
106+
- name: Read Flutter version
107+
shell: bash
108+
run: echo "flutter_version=$(cat $APP_DIR/.flutter_version)" >> "$GITHUB_ENV"
109+
110+
- name: Set up Flutter
111+
uses: subosito/flutter-action@v2
112+
with:
113+
channel: stable
114+
flutter-version: ${{ env.flutter_version }}
115+
cache: true
116+
117+
- name: Install dependencies
118+
working-directory: ${{ env.APP_DIR }}
119+
run: flutter pub get
120+
121+
- name: Build Windows runner
122+
working-directory: ${{ env.APP_DIR }}
123+
run: flutter build windows --release
124+
125+
- name: Upload Windows runner
126+
uses: actions/upload-artifact@v4
127+
with:
128+
name: windows-runner
129+
path: open_wearable/build/windows/x64/runner/Release
130+
if-no-files-found: error

open_wearable/macos/Flutter/GeneratedPluginRegistrant.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import file_picker
99
import file_selector_macos
1010
import flutter_archive
1111
import open_file_mac
12+
import path_provider_foundation
1213
import share_plus
1314
import shared_preferences_foundation
1415
import universal_ble
@@ -19,6 +20,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
1920
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
2021
FlutterArchivePlugin.register(with: registry.registrar(forPlugin: "FlutterArchivePlugin"))
2122
OpenFilePlugin.register(with: registry.registrar(forPlugin: "OpenFilePlugin"))
23+
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
2224
SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
2325
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
2426
UniversalBlePlugin.register(with: registry.registrar(forPlugin: "UniversalBlePlugin"))

open_wearable/pubspec.lock

Lines changed: 12 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ packages:
4545
dependency: transitive
4646
description:
4747
name: characters
48-
sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
48+
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
4949
url: "https://pub.dev"
5050
source: hosted
51-
version: "1.4.1"
51+
version: "1.4.0"
5252
clock:
5353
dependency: transitive
5454
description:
@@ -57,14 +57,6 @@ packages:
5757
url: "https://pub.dev"
5858
source: hosted
5959
version: "1.1.2"
60-
code_assets:
61-
dependency: transitive
62-
description:
63-
name: code_assets
64-
sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687"
65-
url: "https://pub.dev"
66-
source: hosted
67-
version: "1.0.0"
6860
collection:
6961
dependency: transitive
7062
description:
@@ -336,14 +328,6 @@ packages:
336328
description: flutter
337329
source: sdk
338330
version: "0.0.0"
339-
glob:
340-
dependency: transitive
341-
description:
342-
name: glob
343-
sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
344-
url: "https://pub.dev"
345-
source: hosted
346-
version: "2.1.3"
347331
go_router:
348332
dependency: "direct main"
349333
description:
@@ -352,14 +336,6 @@ packages:
352336
url: "https://pub.dev"
353337
source: hosted
354338
version: "14.8.1"
355-
hooks:
356-
dependency: transitive
357-
description:
358-
name: hooks
359-
sha256: "7a08a0d684cb3b8fb604b78455d5d352f502b68079f7b80b831c62220ab0a4f6"
360-
url: "https://pub.dev"
361-
source: hosted
362-
version: "1.0.1"
363339
http:
364340
dependency: "direct main"
365341
description:
@@ -444,18 +420,18 @@ packages:
444420
dependency: transitive
445421
description:
446422
name: matcher
447-
sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6"
423+
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
448424
url: "https://pub.dev"
449425
source: hosted
450-
version: "0.12.18"
426+
version: "0.12.17"
451427
material_color_utilities:
452428
dependency: transitive
453429
description:
454430
name: material_color_utilities
455-
sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
431+
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
456432
url: "https://pub.dev"
457433
source: hosted
458-
version: "0.13.0"
434+
version: "0.11.1"
459435
mcumgr_flutter:
460436
dependency: "direct main"
461437
description:
@@ -480,14 +456,6 @@ packages:
480456
url: "https://pub.dev"
481457
source: hosted
482458
version: "2.0.0"
483-
native_toolchain_c:
484-
dependency: transitive
485-
description:
486-
name: native_toolchain_c
487-
sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac"
488-
url: "https://pub.dev"
489-
source: hosted
490-
version: "0.17.4"
491459
nested:
492460
dependency: transitive
493461
description:
@@ -496,14 +464,6 @@ packages:
496464
url: "https://pub.dev"
497465
source: hosted
498466
version: "1.0.0"
499-
objective_c:
500-
dependency: transitive
501-
description:
502-
name: objective_c
503-
sha256: "983c7fa1501f6dcc0cb7af4e42072e9993cb28d73604d25ebf4dab08165d997e"
504-
url: "https://pub.dev"
505-
source: hosted
506-
version: "9.2.5"
507467
open_earable_flutter:
508468
dependency: "direct main"
509469
description:
@@ -612,10 +572,10 @@ packages:
612572
dependency: transitive
613573
description:
614574
name: path_provider_foundation
615-
sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699"
575+
sha256: "6d13aece7b3f5c5a9731eaf553ff9dcbc2eff41087fd2df587fd0fed9a3eb0c4"
616576
url: "https://pub.dev"
617577
source: hosted
618-
version: "2.6.0"
578+
version: "2.5.1"
619579
path_provider_linux:
620580
dependency: transitive
621581
description:
@@ -865,10 +825,10 @@ packages:
865825
dependency: transitive
866826
description:
867827
name: test_api
868-
sha256: "19a78f63e83d3a61f00826d09bc2f60e191bf3504183c001262be6ac75589fb8"
828+
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55
869829
url: "https://pub.dev"
870830
source: hosted
871-
version: "0.7.8"
831+
version: "0.7.7"
872832
tuple:
873833
dependency: transitive
874834
description:
@@ -1037,14 +997,6 @@ packages:
1037997
url: "https://pub.dev"
1038998
source: hosted
1039999
version: "6.6.1"
1040-
yaml:
1041-
dependency: transitive
1042-
description:
1043-
name: yaml
1044-
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
1045-
url: "https://pub.dev"
1046-
source: hosted
1047-
version: "3.1.3"
10481000
sdks:
1049-
dart: ">=3.10.3 <4.0.0"
1050-
flutter: ">=3.38.4"
1001+
dart: ">=3.10.0 <4.0.0"
1002+
flutter: ">=3.38.0"

0 commit comments

Comments
 (0)