|
| 1 | +# To properly authenticate on pub.dev to publish a release via GitHub Actions, a tag |
| 2 | +# needs to be pushed, see: https://dart.dev/tools/pub/automated-publishing |
| 3 | + |
1 | 4 | name: release-automated |
2 | 5 | on: |
3 | 6 | push: |
4 | 7 | tags: |
5 | 8 | - "dart-[0-9]+.[0-9]+.[0-9]+*" |
6 | 9 | - "flutter-[0-9]+.[0-9]+.[0-9]+*" |
| 10 | +env: |
| 11 | + package: ${{ startsWith(github.ref_name, 'dart') && 'dart' || 'flutter' }} |
7 | 12 | jobs: |
8 | 13 | release: |
9 | 14 | runs-on: ubuntu-latest |
10 | | - env: |
11 | | - dir: ${{ startsWith(github.ref_name, 'flutter') && 'packages/flutter' || 'packages/dart' }} |
12 | 15 | steps: |
13 | 16 | - name: Checkout code |
14 | 17 | uses: actions/checkout@v3 |
15 | | - - name: Setup Dart SDK |
| 18 | + with: |
| 19 | + ref: ${{ github.ref_name }} |
| 20 | + - name: Setup dart |
| 21 | + if: env.package == 'dart' |
16 | 22 | uses: dart-lang/setup-dart@v1 |
17 | | - - name: Resolve packages |
18 | | - run: dart pub get --directory ${{ env.dir }} |
19 | | - - name: Analyze |
20 | | - run: dart analyze --fatal-infos ${{ env.dir }} |
21 | | - - name: Check lint |
22 | | - run: dart format --output=none --set-exit-if-changed ${{ env.dir }} |
| 23 | + - name: Setup flutter |
| 24 | + if: env.package == 'flutter' |
| 25 | + uses: subosito/flutter-action@v2 |
| 26 | + with: |
| 27 | + cache: true |
| 28 | + - name: Install dart dependencies |
| 29 | + run: dart pub get --directory 'packages/dart' |
| 30 | + - name: Install flutter dependencies |
| 31 | + if: env.package == 'flutter' |
| 32 | + run: dart pub get --directory 'packages/flutter' |
| 33 | + - name: Analyze dart |
| 34 | + if: env.package == 'dart' |
| 35 | + run: dart analyze --fatal-infos 'packages/${{ env.package }}' |
| 36 | + - name: Analyze flutter |
| 37 | + if: env.package == 'flutter' |
| 38 | + run: flutter analyze --fatal-infos 'packages/${{ env.package }}' |
| 39 | + - name: Lint |
| 40 | + run: dart format --output=none --set-exit-if-changed 'packages/${{ env.package }}' |
23 | 41 | - name: Publish package (dry-run) |
24 | | - working-directory: ${{ env.dir }} |
| 42 | + working-directory: 'packages/${{ env.package }}' |
25 | 43 | run: dart pub publish --dry-run |
26 | 44 | - name: Publish package |
27 | | - working-directory: ${{ env.dir }} |
| 45 | + working-directory: 'packages/${{ env.package }}' |
28 | 46 | run: dart pub publish --force |
0 commit comments