forked from graphql-rust/juniper
-
Notifications
You must be signed in to change notification settings - Fork 0
151 lines (119 loc) · 3.35 KB
/
ci.yml
File metadata and controls
151 lines (119 loc) · 3.35 KB
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
name: CI
on: [pull_request, push]
jobs:
###################################################
# Formatting
###################################################
format:
name: Check formatting
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt
profile: minimal
override: true
- name: Run rustfmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
###################################################
# Main Builds
###################################################
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
rust: [stable, beta, nightly]
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- uses: davidB/rust-cargo-make@v1
with:
version: '0.20.0'
- name: Build and run tests
env:
CARGO_MAKE_RUN_CODECOV: true
run: |
cargo make workspace-ci-flow --no-workspace
###################################################
# WASM Builds
###################################################
wasm:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Check
uses: actions-rs/cargo@v1
with:
command: check
args: --target wasm32-unknown-unknown --package juniper --package juniper_codegen
###################################################
# Releases
###################################################
release:
name: Check release automation
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 20
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- uses: davidB/rust-cargo-make@v1
with:
version: '0.20.0'
- name: Install cargo-release
uses: actions-rs/cargo@v1
with:
command: install
args: --version=0.11.2 cargo-release
- name: Setup git
run: |
git config --global user.email "juniper@example.com"
git config --global user.name "Release Test Bot"
- name: Dry run mode
env:
RELEASE_LEVEL: minor
run: |
cargo make release-dry-run
- name: Local test mode
env:
RELEASE_LEVEL: minor
run: |
cargo make release-local-test
- name: Echo local changes
run: |
git --no-pager log -p HEAD...HEAD~20
- name: Run tests
run: |
cargo make workspace-ci-flow --no-workspace