-
Notifications
You must be signed in to change notification settings - Fork 181
132 lines (110 loc) · 3.66 KB
/
ci.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
name: CI
on:
push:
branches:
- master
- auto
- try
pull_request:
branches:
- "**"
jobs:
test:
name: Test
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.rust == 'nightly' }}
strategy:
matrix:
rust: [stable, nightly]
steps:
- name: Checkout the source code
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- name: Build chalk-engine without default features
run: cd chalk-engine && cargo build --no-default-features
- name: Build chalk-engine with all features
run: cd chalk-engine && cargo build --all-features
- name: Execute tests for all crates in the workspace
run: cargo test --all
- name: Install mdbook
run: |
cd book
curl -L https://github.com/rust-lang/mdBook/releases/download/v0.4.5/mdbook-v0.4.5-x86_64-unknown-linux-gnu.tar.gz | tar xz
# Add the book directory to the $PATH
echo "$GITHUB_WORKSPACE/book" >> $GITHUB_PATH
- name: Install mdbook-mermaid
run: cargo install mdbook-mermaid
- name: Execute tests for Chalk book
run: cd book && ./mdbook test
- name: Build Chalk book
run: cd book && ./mdbook build
- name: Build documentation for all crates in the workspace
run: cargo doc --all --document-private-items --no-deps
- name: Upload documentation to GitHub Pages
run: |
touch target/doc/.nojekyll
curl -LsSf https://raw.githubusercontent.com/rust-lang/simpleinfra/master/setup-deploy-keys/src/deploy.rs | rustc - -o /tmp/deploy
cp -r book/book/html target/doc/book
(cd target/doc && /tmp/deploy)
env:
GITHUB_DEPLOY_KEY: ${{ secrets.GITHUB_DEPLOY_KEY }}
if: matrix.rust == 'stable' && github.ref == 'refs/heads/master'
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout the source code
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
components: rustfmt
- name: Check formatting of all crates in the workspace
run: cargo fmt --all -- --check
mdbook-linkcheck:
name: Book link check
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/master'
steps:
- name: Checkout the source code
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Install mdbook
run: |
cd book
curl -L https://github.com/rust-lang/mdBook/releases/download/v0.4.5/mdbook-v0.4.5-x86_64-unknown-linux-gnu.tar.gz | tar xz
# Add the book directory to the $PATH
echo "$GITHUB_WORKSPACE/book" >> $GITHUB_PATH
- name: Install mdbook-linkcheck
run: cd book && curl -L https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/download/v0.7.0/mdbook-linkcheck-v0.7.0-x86_64-unknown-linux-gnu.tar.gz | tar xz
- name: Build Chalk book
run: cd book && ./mdbook build
end-success:
name: bors build finished
if: success()
runs-on: ubuntu-latest
needs: [test, fmt]
steps:
- name: Mark the job as successful
run: exit 0
end-failure:
name: bors build finished
if: "!success()"
runs-on: ubuntu-latest
needs: [test, fmt]
steps:
- name: Mark the job as a failure
run: exit 1