-
-
Notifications
You must be signed in to change notification settings - Fork 441
158 lines (129 loc) · 4.6 KB
/
build-firebase.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
name: build firebase
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the develop branch
on:
push:
branches: [develop, main]
paths:
- "flutter_cache_manager_firebase/**"
- ".github/workflows/**"
pull_request:
branches: [develop]
paths:
- "flutter_cache_manager_firebase/**"
- ".github/workflows/**"
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
format:
name: Format
# The type of runner that the job will run on
runs-on: ubuntu-latest
env:
source-directory: ./flutter_cache_manager_firebase
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true
# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}
# Run Flutter Format to ensure formatting is valid
- name: Run Flutter Format
run: dart format --set-exit-if-changed .
working-directory: ${{env.source-directory}}
analyze:
name: Analyze
# The type of runner that the job will run on
runs-on: ubuntu-latest
env:
source-directory: ./flutter_cache_manager_firebase
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true
# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}
# Run Flutter Analyzer
- name: Run Flutter Analyzer
run: flutter analyze
working-directory: ${{env.source-directory}}
tests:
name: Unit-tests
# The type of runner that the job will run on
runs-on: ubuntu-latest
env:
source-directory: ./flutter_cache_manager_firebase
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true
# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}
# Run all unit-tests with code coverage
# - name: Run unit tests
# run: flutter test --coverage
# working-directory: ${{env.source-directory}}
# # Upload code coverage information
# - uses: codecov/codecov-action@v4
# env:
# CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# with:
# files: ${{env.source-directory}}/coverage/lcov.info
# name: CacheManager
# fail_ci_if_error: true
publish_cache_manager_firebase:
if: ${{ github.ref_type == 'tag' }}
name: Publish Cache Manager Firebase
permissions:
id-token: write
needs: [format, analyze, tests]
# The type of runner that the job will run on
runs-on: ubuntu-latest
env:
source-directory: ./flutter_cache_manager_firebase
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Set up Dart
uses: dart-lang/setup-dart@v1
# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true
# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}
# Publish the package
- name: Publish package
run: dart pub publish -v -f