-
Notifications
You must be signed in to change notification settings - Fork 354
159 lines (151 loc) · 5.07 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
158
159
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@11bd71901bbe5b1630ceea73d27597364c9af683
with:
submodules: recursive
- uses: subosito/flutter-action@74af56c5ed2697ba4621264652728e8d217e53d3
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@11bd71901bbe5b1630ceea73d27597364c9af683
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@11bd71901bbe5b1630ceea73d27597364c9af683
with:
submodules: recursive
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af
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@11bd71901bbe5b1630ceea73d27597364c9af683
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@11bd71901bbe5b1630ceea73d27597364c9af683
with:
submodules: recursive
# docs.flutter.cn | https://github.com/cfug/flutter.cn/pull/1518
fetch-depth: 0
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af
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 --release
- 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 }}