-
Notifications
You must be signed in to change notification settings - Fork 11
140 lines (116 loc) · 3.8 KB
/
everything.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
---
name: Run Tests & Publishing
on: [push, pull_request]
jobs:
lint:
name: Lint Codebase
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
components: rustfmt, clippy
- name: Restore Rust Cache
uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run Lints
run: cargo make lints
build:
name: Build Examples
runs-on: ubuntu-latest
steps:
- name: Checkout Project
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
components: rustfmt, clippy
- name: Restore Rust Cache
uses: Swatinem/rust-cache@v2
- name: Setup trunk
uses: jetli/trunk-action@v0.4.0
with:
version: "latest"
- name: Build Examples
run: |
for d in "examples/"*
do
trunk build --release $d/index.html
done
test:
name: Run Tests
runs-on: ubuntu-latest
services:
httpbin:
image: kennethreitz/httpbin
ports:
- 8080:80
steps:
- name: Checkout Project
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
components: rustfmt, clippy
- name: Restore Rust Cache
uses: Swatinem/rust-cache@v2
- name: Install wasm-pack
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Install cargo-make
uses: davidB/rust-cargo-make@v1
- name: Run Tests
run: cargo make tests
publish:
name: Publish to crates.io
runs-on: ubuntu-latest
needs:
- lint
- build
- test
if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/'))
steps:
- name: Checkout Project
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
components: rustfmt, clippy
- name: Restore Rust Cache
uses: Swatinem/rust-cache@v2
- name: Run cargo publish --dry-run for bounce-macros
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
run: cargo publish --dry-run --manifest-path crates/bounce-macros/Cargo.toml
env:
RUSTFLAGS: "--cfg releasing"
- name: Run cargo publish for bounce-macros
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
run: cargo publish --token ${{ secrets.CRATES_IO_TOKEN }} --manifest-path crates/bounce-macros/Cargo.toml
env:
RUSTFLAGS: "--cfg releasing"
# Not possible if bounce-macros does not have a compatible version on crates.io
# See: https://github.com/rust-lang/cargo/issues/1169
# - name: Run cargo publish --dry-run for bounce
# if: github.event_name == 'push' && github.ref == 'refs/heads/master'
# run: cargo publish --dry-run --manifest-path crates/bounce/Cargo.toml
# env:
# RUSTFLAGS: "--cfg releasing"
- name: Run cargo publish for bounce
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
run: cargo publish --token ${{ secrets.CRATES_IO_TOKEN }} --manifest-path crates/bounce/Cargo.toml
env:
RUSTFLAGS: "--cfg releasing"