@@ -14,16 +14,16 @@ jobs:
1414 runs-on : ${{ matrix.os }}
1515 strategy :
1616 matrix :
17- os : [ ubuntu-latest ]
17+ os : [ubuntu-latest]
1818 steps :
1919 - uses : actions/checkout@v4
2020 - uses : actions/setup-java@v4
2121 with :
22- distribution : ' zulu'
23- java-version : ' 17 '
22+ distribution : " zulu"
23+ java-version : " 17 "
2424 - uses : subosito/flutter-action@v2
2525 with :
26- channel : ' stable'
26+ channel : " stable"
2727 - name : Log Dart/Flutter versions
2828 run : |
2929 dart --version
@@ -42,42 +42,113 @@ jobs:
4242 runs-on : ${{ matrix.os }}
4343 strategy :
4444 matrix :
45- os : [ macos-latest ]
45+ os : [macos-latest]
46+ build_cmd :
47+ - melos run try_build_ios
48+ - melos run try_build_ios_swift_package_manager
4649 steps :
4750 - uses : actions/checkout@v4
4851 - uses : actions/setup-java@v4
4952 with :
50- distribution : ' zulu'
51- java-version : ' 17 '
53+ distribution : " zulu"
54+ java-version : " 17 "
5255 - uses : subosito/flutter-action@v2
5356 with :
5457 architecture : x64
55- channel : ' stable'
58+ channel : " stable"
5659 - run : dart --version
5760 - run : flutter --version
5861 - name : Install melos
5962 run : dart pub global activate melos
6063 - name : Melos bootstrap
6164 run : melos bootstrap
6265 - name : Build iOS debug with melos
63- run : melos run try_build_ios
66+ run : ${{ matrix.build_cmd }}
67+
68+ integration_test_iOS :
69+ needs : analyze
70+ name : Integration test iOS (${{ matrix.spm }}) on ${{ matrix.os }}
71+ runs-on : ${{ matrix.os }}
72+ strategy :
73+ fail-fast : false
74+ matrix :
75+ os : [macos-latest]
76+ spm : [cocoapods, swift-package-manager]
77+ steps :
78+ - uses : actions/checkout@v4
79+ - uses : subosito/flutter-action@v2
80+ with :
81+ channel : " stable"
82+ - run : flutter --version
83+ - name : Install melos
84+ run : dart pub global activate melos
85+ - name : Melos bootstrap
86+ run : melos bootstrap
87+ - name : Configure Swift Package Manager
88+ run : |
89+ if [ "${{ matrix.spm }}" = "swift-package-manager" ]; then
90+ flutter config --enable-swift-package-manager
91+ else
92+ flutter config --no-enable-swift-package-manager
93+ fi
94+ - name : Boot iOS simulator
95+ run : |
96+ UDID=$(xcrun simctl list devices available | grep -E "iPhone [0-9]+ \(" | head -n 1 | grep -oE "[0-9A-F-]{36}")
97+ echo "Booting $UDID"
98+ xcrun simctl boot "$UDID"
99+ echo "DEVICE_ID=$UDID" >> $GITHUB_ENV
100+ - name : Run integration tests
101+ working-directory : packages/flutter_image_compress/example
102+ env :
103+ DEVICE_ID : ${{ env.DEVICE_ID }}
104+ run : flutter test integration_test/compress_test.dart -d "$DEVICE_ID"
105+
106+ integration_test_macOS :
107+ needs : analyze
108+ name : Integration test macOS (${{ matrix.spm }}) on ${{ matrix.os }}
109+ runs-on : ${{ matrix.os }}
110+ strategy :
111+ fail-fast : false
112+ matrix :
113+ os : [macos-latest]
114+ spm : [cocoapods, swift-package-manager]
115+ steps :
116+ - uses : actions/checkout@v4
117+ - uses : subosito/flutter-action@v2
118+ with :
119+ channel : " stable"
120+ - run : flutter --version
121+ - name : Install melos
122+ run : dart pub global activate melos
123+ - name : Melos bootstrap
124+ run : melos bootstrap
125+ - name : Configure Swift Package Manager
126+ run : |
127+ if [ "${{ matrix.spm }}" = "swift-package-manager" ]; then
128+ flutter config --enable-swift-package-manager
129+ else
130+ flutter config --no-enable-swift-package-manager
131+ fi
132+ - name : Run integration tests
133+ working-directory : packages/flutter_image_compress/example
134+ run : flutter test integration_test/compress_test.dart -d macos
64135
65136 test_android :
66137 needs : analyze
67138 name : Test Android on ${{ matrix.os }}
68139 runs-on : ${{ matrix.os }}
69140 strategy :
70141 matrix :
71- os : [ ubuntu-latest ]
142+ os : [ubuntu-latest]
72143 steps :
73144 - uses : actions/checkout@v4
74145 - uses : actions/setup-java@v4
75146 with :
76- distribution : ' zulu'
77- java-version : ' 17 '
147+ distribution : " zulu"
148+ java-version : " 17 "
78149 - uses : subosito/flutter-action@v2
79150 with :
80- channel : ' stable'
151+ channel : " stable"
81152 - run : dart --version
82153 - run : flutter --version
83154 - run : flutter pub get
@@ -93,16 +164,16 @@ jobs:
93164 runs-on : ${{ matrix.os }}
94165 strategy :
95166 matrix :
96- os : [ ubuntu-latest ]
167+ os : [ubuntu-latest]
97168 steps :
98169 - uses : actions/checkout@v4
99170 - uses : actions/setup-java@v4
100171 with :
101- distribution : ' zulu'
102- java-version : ' 17 '
172+ distribution : " zulu"
173+ java-version : " 17 "
103174 - uses : subosito/flutter-action@v2
104175 with :
105- channel : ' stable'
176+ channel : " stable"
106177 - run : dart --version
107178 - run : flutter --version
108179 - name : Install melos
0 commit comments