Skip to content

Commit 25a7954

Browse files
committed
refactor/doc: Prepare for v0.1.0 release
1 parent 31d1b42 commit 25a7954

File tree

10 files changed

+833
-1115
lines changed

10 files changed

+833
-1115
lines changed

.github/workflows/ci.yml

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ trunk, main ]
6+
pull_request:
7+
branches: [ trunk, main ]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
jobs:
13+
test:
14+
name: Test
15+
runs-on: ${{ matrix.os }}
16+
strategy:
17+
matrix:
18+
os: [ubuntu-latest, windows-latest, macos-latest]
19+
rust: [stable, beta]
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- name: Install Rust
24+
uses: dtolnay/rust-toolchain@master
25+
with:
26+
toolchain: ${{ matrix.rust }}
27+
28+
- name: Cache cargo registry
29+
uses: actions/cache@v4
30+
with:
31+
path: ~/.cargo/registry
32+
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
33+
34+
- name: Cache cargo index
35+
uses: actions/cache@v4
36+
with:
37+
path: ~/.cargo/git
38+
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
39+
40+
- name: Cache cargo build
41+
uses: actions/cache@v4
42+
with:
43+
path: target
44+
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
45+
46+
- name: Run tests
47+
run: cargo test --verbose
48+
49+
- name: Run doc tests
50+
run: cargo test --doc --verbose
51+
52+
fmt:
53+
name: Rustfmt
54+
runs-on: ubuntu-latest
55+
steps:
56+
- uses: actions/checkout@v4
57+
58+
- name: Install Rust
59+
uses: dtolnay/rust-toolchain@stable
60+
with:
61+
components: rustfmt
62+
63+
- name: Check formatting
64+
run: cargo fmt --all -- --check
65+
66+
clippy:
67+
name: Clippy
68+
runs-on: ubuntu-latest
69+
steps:
70+
- uses: actions/checkout@v4
71+
72+
- name: Install Rust
73+
uses: dtolnay/rust-toolchain@stable
74+
with:
75+
components: clippy
76+
77+
- name: Run clippy
78+
run: cargo clippy --all-targets --all-features -- -D warnings
79+
80+
examples:
81+
name: Examples
82+
runs-on: ubuntu-latest
83+
steps:
84+
- uses: actions/checkout@v4
85+
86+
- name: Install Rust
87+
uses: dtolnay/rust-toolchain@stable
88+
89+
- name: Check examples
90+
run: cargo check --examples
91+
92+
- name: Build examples
93+
run: cargo build --examples
94+
95+
- name: Run enemy example
96+
run: cargo run --example enemy_example
97+
98+
coverage:
99+
name: Code Coverage
100+
runs-on: ubuntu-latest
101+
steps:
102+
- uses: actions/checkout@v4
103+
104+
- name: Install Rust
105+
uses: dtolnay/rust-toolchain@stable
106+
107+
- name: Install cargo-tarpaulin
108+
run: cargo install cargo-tarpaulin
109+
110+
- name: Generate coverage
111+
run: cargo tarpaulin --verbose --all-features --workspace --timeout 120 --out xml
112+
113+
- name: Upload coverage to Codecov
114+
uses: codecov/codecov-action@v4
115+
with:
116+
files: ./cobertura.xml
117+
fail_ci_if_error: false
118+
119+
msrv:
120+
name: Minimum Supported Rust Version
121+
runs-on: ubuntu-latest
122+
steps:
123+
- uses: actions/checkout@v4
124+
125+
- name: Install Rust 1.70.0
126+
uses: dtolnay/rust-toolchain@master
127+
with:
128+
toolchain: "1.70.0"
129+
130+
- name: Check with MSRV
131+
run: cargo check --all-features
132+
133+
wasm:
134+
name: WebAssembly
135+
runs-on: ubuntu-latest
136+
steps:
137+
- uses: actions/checkout@v4
138+
139+
- name: Install Rust
140+
uses: dtolnay/rust-toolchain@stable
141+
with:
142+
targets: wasm32-unknown-unknown
143+
144+
- name: Check wasm32-unknown-unknown
145+
run: cargo check --target wasm32-unknown-unknown --lib
146+
147+
- name: Build wasm32-unknown-unknown
148+
run: cargo build --target wasm32-unknown-unknown --lib --release

.github/workflows/release.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
env:
9+
CARGO_TERM_COLOR: always
10+
11+
jobs:
12+
publish:
13+
name: Publish to crates.io
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Install Rust
19+
uses: dtolnay/rust-toolchain@stable
20+
21+
- name: Run tests
22+
run: cargo test --verbose
23+
24+
- name: Publish
25+
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
26+
27+
create-release:
28+
name: Create GitHub Release
29+
runs-on: ubuntu-latest
30+
needs: publish
31+
steps:
32+
- uses: actions/checkout@v4
33+
34+
- name: Extract version from tag
35+
id: get_version
36+
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
37+
38+
- name: Create Release
39+
uses: softprops/action-gh-release@v1
40+
with:
41+
name: Release ${{ steps.get_version.outputs.VERSION }}
42+
body: |
43+
See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/trunk/CHANGELOG.md) for details.
44+
draft: false
45+
prerelease: false
46+
env:
47+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)