11name : Dart CI
22
3- on : [push, pull_request]
3+ env :
4+ PANA_SCORE_THRESHOLD : 20
5+ LOWEST_SUPPORTED_FLUTTER_SDK : 3.38.1
6+ FLUTTER_SDK : 3.38.1
7+
8+ on :
9+ push :
10+ branches :
11+ - master
12+ pull_request :
413
514jobs :
6- test :
7- runs-on : ${{ matrix.os }}
15+ dart_format :
16+ name : " Dart: formatting"
17+ runs-on : ubuntu-slim
818 strategy :
19+ fail-fast : false
920 matrix :
10- os : [ubuntu-latest]
11- sdk : [stable, beta, dev]
21+ package :
22+ - cryptography
23+ - cryptography_test
24+ - jwk
1225 steps :
26+ - uses : dart-lang/setup-dart@v1
1327 - uses : actions/checkout@v3
28+ - name : Verify that code is formatted
29+ run : dart format --set-exit-if-changed .
30+ working-directory : " ./${{ matrix.package }}"
31+ dart_test :
32+ name : " Dart: test"
33+ needs : format
34+ runs-on : ubuntu-latest
35+ strategy :
36+ fail-fast : false
37+ matrix :
38+ package :
39+ - cryptography
40+ - jwk
41+ compiler :
42+ - vm
43+ - dart2js
44+ - dart2wasm
45+ sdk :
46+ # The oldest supported Dart SDK at the moment.
47+ # Feel free to bump it up whenever needed.
48+ - 3.6.0
49+ - beta
50+ steps :
51+ - uses : browser-actions/setup-chrome@v2
52+ if : ${{ matrix.compiler != 'vm' }}
1453 - uses : dart-lang/setup-dart@v1
1554 with :
1655 sdk : ${{ matrix.sdk }}
17- - name : Run tests (cryptography)
18- run : dart test --platform vm
19- working-directory : ./cryptography
20- - name : Run tests (cryptography_test)
21- run : dart test --platform vm
22- working-directory : ./cryptography_test
23- - name : Run tests (jwk)
24- run : dart test --platform vm
25- working-directory : ./jwk
26- - name : Analyze (cryptography)
27- run : dart analyze
28- working-directory : ./cryptography
29- - name : Analyze (jwk)
56+ - uses : actions/checkout@v3
57+ - name : Get dependencies
58+ run : dart pub get
59+ working-directory : ./${{ matrix.package }}
60+ - name : Analyze
3061 run : dart analyze
31- working-directory : ./jwk
62+ working-directory : ./${{ matrix.package }}
63+ - name : " Test: VM build"
64+ if : ${{ matrix.compiler == 'vm' }}
65+ run : dart test --platform vm
66+ working-directory : ./${{ matrix.package }}
67+ - name : " Test: JS build"
68+ if : ${{ matrix.compiler == 'dart2js' }}
69+ run : dart test --platform chrome --compiler dart2js
70+ working-directory : ./${{ matrix.package }}
71+ - name : " Test: WASM build"
72+ if : ${{ matrix.compiler == 'dart2wasm' }}
73+ run : dart test --platform chrome --compiler dart2wasm
74+ working-directory : ./${{ matrix.package }}
75+ dart_package_health :
76+ name : " Dart: analyze package health"
77+ needs : analyze
78+ runs-on : ubuntu-slim
79+ strategy :
80+ fail-fast : false
81+ matrix :
82+ package :
83+ - cryptography
84+ - jwk
85+ steps :
86+ - uses : dart-lang/setup-dart@v1
87+ - uses : actions/checkout@v3
88+ - name : Get dependencies
89+ run : dart pub get
90+ working-directory : ./${{ matrix.package }}
91+ - name : Print outdated dependencies
92+ run : dart pub outdated
93+ working-directory : ./${{ matrix.package }}
94+ - name : Install package analyzer
95+ run : dart pub global activate pana
96+ - name : Run package analyzer
97+ run : dart pub global run pana --exit-code-threshold $PANA_SCORE_THRESHOLD
98+ working-directory : ./${{ matrix.package }}
99+ #
100+ # Flutter packages: analyze
101+ #
102+ flutter_analyze :
103+ name : " Flutter: analyze"
104+ runs-on : ubuntu-latest
105+ strategy :
106+ fail-fast : false
107+ matrix :
108+ package :
109+ - cryptography_flutter
110+ - cryptography_flutter_integration_test
111+ sdk :
112+ # The oldest supported Dart SDK at the moment.
113+ # Feel free to bump it up whenever needed.
114+ - 3.38.0
115+ - beta
116+ steps :
117+ - name : Install Flutter
118+ run : |
119+ cd $HOME
120+ git clone https://github.com/flutter/flutter.git --depth 1 -b $FLUTTER_SDK _flutter
121+ echo "$HOME/_flutter/bin" >> $GITHUB_PATH
122+ cd $GITHUB_WORKSPACE
123+ - uses : actions/checkout@v3
124+ - name : Get dependencies
125+ run : flutter pub get
126+ working-directory : ./${{ matrix.package }}
127+ - name : Verify that code is formatted
128+ run : dart format --set-exit-if-changed .
129+ working-directory : ./${{ matrix.package }}
130+ - name : Analyze
131+ run : flutter analyze
132+ working-directory : ./${{ matrix.package }}
133+
134+ #
135+ # Unfortunately we don't have Flutter integration tests running in Gitlab.
136+ #
137+ # If someone wants to add them, that would be great.
138+ #
139+
140+ #
141+ # Flutter packages: analyze
142+ #
143+ flutter_package_health :
144+ name : " Flutter: check package health"
145+ needs : analyze
146+ strategy :
147+ fail-fast : false
148+ matrix :
149+ package :
150+ - cryptography
151+ - jwk
152+ runs-on : ubuntu-latest
153+ steps :
154+ - name : Install Flutter
155+ run : |
156+ cd $HOME
157+ git clone https://github.com/flutter/flutter.git --depth 1 -b $FLUTTER_SDK _flutter
158+ echo "$HOME/_flutter/bin" >> $GITHUB_PATH
159+ cd $GITHUB_WORKSPACE
160+ - uses : actions/checkout@v3
161+ - name : Get dependencies
162+ run : flutter pub get
163+ working-directory : ./${{ matrix.package }}
164+ - name : Print outdated dependencies
165+ run : flutter pub outdated
166+ working-directory : ./${{ matrix.package }}
167+ - name : Install package analyzer
168+ run : flutter pub global activate pana
169+ working-directory : ./${{ matrix.package }}
170+ - name : Run package analyzer
171+ run : flutter pub global run pana --exit-code-threshold $PANA_SCORE_THRESHOLD
172+ working-directory : ./${{ matrix.package }}
0 commit comments