11name : Dart CI
22
3- on : [push, pull_request]
3+ env :
4+ PANA_SCORE_THRESHOLD : 40
5+
6+ on :
7+ push :
8+ branches :
9+ - master
10+ pull_request :
11+ schedule :
12+ - cron : ' 0 0 1 * *' # Monthly run on the first day of the month at 00:00 UTC
413
514jobs :
6- test :
7- runs-on : ${{ matrix.os }}
15+
16+ #
17+ # Dart packages: format and analyze
18+ #
19+ dart_analyze :
20+ name : " Analyze"
21+ runs-on : ubuntu-slim
822 strategy :
23+ fail-fast : false
924 matrix :
10- os : [ubuntu-latest]
11- sdk : [stable, beta, dev]
25+ package :
26+ - cryptography
27+ - jwk
28+ sdk :
29+ # The oldest supported Dart SDK at the moment.
30+ # Feel free to bump it up whenever needed.
31+ - 3.3.0
32+
33+ # We want to support the latest beta SDK as well.
34+ - beta
1235 steps :
13- - uses : actions/checkout@v3
1436 - uses : dart-lang/setup-dart@v1
1537 with :
1638 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)
39+ - uses : actions/checkout@v3
40+ - name : Get dependencies
41+ run : dart pub get
42+ working-directory : ./${{ matrix.package }}
43+ - name : Verify that code is formatted
44+ continue-on-error : true
45+ run : dart format --set-exit-if-changed .
46+ working-directory : " ./${{ matrix.package }}"
47+ - name : Analyze
3048 run : dart analyze
31- working-directory : ./jwk
49+ working-directory : ./${{ matrix.package }}
50+
51+ #
52+ # Dart packages: test
53+ #
54+ dart_test :
55+ name : " Test"
56+ needs : dart_analyze
57+ runs-on : ubuntu-latest
58+ strategy :
59+ fail-fast : false
60+ matrix :
61+ package :
62+ - cryptography
63+ - jwk
64+ compiler :
65+ - vm
66+ - dart2js
67+ steps :
68+ - uses : browser-actions/setup-chrome@v2
69+ if : ${{ matrix.compiler != 'vm' }}
70+ - uses : dart-lang/setup-dart@v1
71+ with :
72+ sdk : beta
73+ - uses : actions/checkout@v3
74+ - name : Get dependencies
75+ run : dart pub get
76+ working-directory : ./${{ matrix.package }}
77+ - name : " Test: VM build"
78+ if : ${{ matrix.compiler == 'vm' }}
79+ run : dart test --platform vm
80+ working-directory : ./${{ matrix.package }}
81+ - name : " Test: JS build"
82+ if : ${{ matrix.compiler == 'vm' }}
83+ run : dart test --platform chrome --compiler dart2js
84+ working-directory : ./${{ matrix.package }}
85+
86+ #
87+ # Dart packages: PANA score
88+ #
89+ dart_package_health :
90+ name : " PANA"
91+ needs : dart_analyze
92+ runs-on : ubuntu-slim
93+ strategy :
94+ fail-fast : false
95+ matrix :
96+ package :
97+ - cryptography
98+ - jwk
99+ steps :
100+ - uses : dart-lang/setup-dart@v1
101+ - uses : actions/checkout@v3
102+ - name : Get dependencies
103+ run : dart pub get
104+ working-directory : ./${{ matrix.package }}
105+ - name : Print outdated dependencies
106+ continue-on-error : true
107+ run : dart pub outdated
108+ working-directory : ./${{ matrix.package }}
109+ - name : Install package analyzer
110+ run : dart pub global activate pana
111+ - name : Run package analyzer
112+ continue-on-error : true
113+ run : dart pub global run pana --exit-code-threshold $PANA_SCORE_THRESHOLD .
114+ working-directory : ./${{ matrix.package }}
115+ #
116+ # Flutter packages: format and analyze
117+ #
118+ flutter_analyze :
119+ name : " Analyze"
120+ runs-on : ubuntu-latest
121+ strategy :
122+ fail-fast : false
123+ matrix :
124+ package :
125+ - cryptography_flutter
126+ - cryptography_flutter_integration_test
127+ sdk :
128+ # The oldest supported Dart SDK at the moment.
129+ # Feel free to bump it up whenever needed.
130+ - 3.35.0
131+
132+ # We want to support the latest beta SDK as well.
133+ - beta
134+ steps :
135+ - name : Install Flutter
136+ run : |
137+ cd $HOME
138+ git clone https://github.com/flutter/flutter.git --depth 1 -b ${{ matrix.sdk }} _flutter
139+ echo "$HOME/_flutter/bin" >> $GITHUB_PATH
140+ cd $GITHUB_WORKSPACE
141+ - uses : actions/checkout@v3
142+ - name : Get dependencies
143+ run : flutter pub get
144+ working-directory : ./${{ matrix.package }}
145+ - name : Verify that code is formatted
146+ continue-on-error : true
147+ run : dart format --set-exit-if-changed .
148+ working-directory : ./${{ matrix.package }}
149+ - name : Analyze
150+ run : flutter analyze
151+ working-directory : ./${{ matrix.package }}
152+
153+ #
154+ # Unfortunately we don't have Flutter integration tests in Github Actions yet. :(
155+ #
156+
157+ #
158+ # Flutter packages: PANA score
159+ #
160+ flutter_package_health :
161+ name : " PANA"
162+ needs : flutter_analyze
163+ strategy :
164+ fail-fast : false
165+ matrix :
166+ package :
167+ - cryptography_flutter
168+ runs-on : ubuntu-latest
169+ steps :
170+ - name : Install Flutter
171+ run : |
172+ cd $HOME
173+ git clone https://github.com/flutter/flutter.git --depth 1 -b beta _flutter
174+ echo "$HOME/_flutter/bin" >> $GITHUB_PATH
175+ cd $GITHUB_WORKSPACE
176+ - uses : actions/checkout@v3
177+ - name : Get dependencies
178+ run : flutter pub get
179+ working-directory : ./${{ matrix.package }}
180+ - name : Print outdated dependencies
181+ continue-on-error : true
182+ run : flutter pub outdated
183+ working-directory : ./${{ matrix.package }}
184+ - name : Install package analyzer
185+ run : flutter pub global activate pana
186+ working-directory : ./${{ matrix.package }}
187+ - name : Run package analyzer
188+ continue-on-error : true
189+ run : flutter pub global run pana --exit-code-threshold $PANA_SCORE_THRESHOLD .
190+ working-directory : ./${{ matrix.package }}
0 commit comments