-
Notifications
You must be signed in to change notification settings - Fork 356
157 lines (149 loc) · 4.96 KB
/
build.yml
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
name: build
on:
push:
branches:
- main
pull_request:
branches:
- main
# Declare default permissions as read only.
permissions: read-all
env:
NODE_VERSION: 20
jobs:
test:
name: Analyze and test code examples
runs-on: ubuntu-latest
if: github.repository == 'cfug/flutter.cn'
strategy:
fail-fast: false
matrix:
include:
- name: "Beta channel"
branch: beta
experimental: true
- name: "Stable channel"
branch: stable
experimental: false
continue-on-error: ${{ matrix.experimental }}
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
submodules: recursive
- uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1
with:
channel: ${{ matrix.branch }}
- name: Fetch Dart dependencies
run: dart pub get
continue-on-error: ${{ matrix.experimental }}
- name: Check Dart code formatting
run: dart run flutter_site format-dart --check
continue-on-error: ${{ matrix.experimental }}
- name: Analyze Dart code
run: dart run flutter_site analyze-dart
continue-on-error: ${{ matrix.experimental }}
- name: Run Dart tests
run: dart run flutter_site test-dart
continue-on-error: ${{ matrix.experimental }}
excerpts:
name: Check if code excerpts are up to date
runs-on: ubuntu-latest
if: github.repository == 'cfug/flutter.cn'
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
submodules: recursive
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
with:
sdk: stable
- name: Fetch Dart dependencies
run: dart pub get
- name: Check if excerpts are up to date
run: dart run flutter_site refresh-excerpts --fail-on-update --dry-run
continue-on-error: ${{ matrix.experimental }}
linkcheck:
name: Build site and check links
runs-on: ubuntu-latest
if: |
github.repository == 'cfug/flutter.cn'
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
submodules: recursive
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Setup pnpm
run: corepack install
- name: Install node dependencies
run: pnpm install --frozen-lockfile
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
with:
sdk: stable
- name: Fetch Dart dependencies
run: dart pub get
- name: Build site
run: dart run flutter_site build
- name: Translated (docs.flutter.cn)
run: bash tool/translator/build.sh
shell: bash
- name: Check for broken Markdown link references
run: dart run flutter_site check-link-references
- name: Check for broken internal links
run: dart run flutter_site check-links
firebase-validate:
name: Validate Firebase configuration
runs-on: ubuntu-latest
if: github.repository == 'cfug/flutter.cn'
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
submodules: recursive
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
with:
sdk: stable
- name: Fetch Dart dependencies
run: dart pub get
- name: Validate the firebase.json file
run: dart run flutter_site verify-firebase-json
deploy:
name: Deploy to production
needs: [test, excerpts, linkcheck, firebase-validate]
runs-on: ubuntu-latest
if: |
github.event_name == 'push' &&
github.ref == 'refs/heads/main' &&
github.repository == 'cfug/flutter.cn'
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
submodules: recursive
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Setup pnpm
run: corepack install
- name: Install node dependencies
run: pnpm install --frozen-lockfile
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
with:
sdk: stable
- name: Fetch Dart dependencies
run: dart pub get
- name: Build site
run: dart run flutter_site build
- name: Translated (docs.flutter.cn)
run: bash tool/translator/build.sh
shell: bash
- name: Deploy to production
run: bash tool/translator/deploy-cn.sh
shell: bash
env:
DEPLOY_USER: ${{ secrets.DOCS_REPO_DEPLOY_USER }}
DEPLOY_TOKEN: ${{ secrets.DOCS_REPO_DEPLOY_TOKEN }}