Fix #149 - mutators for generic fields #229
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: [master] | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
checks: write | |
jobs: | |
ci: | |
name: CI | |
needs: [test, clippy, docs] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Done | |
run: exit 0 | |
test: | |
name: Tests | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
rust: [1.70.0, nightly] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
override: true | |
- name: Ready cache | |
if: matrix.os == 'ubuntu-latest' | |
run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/ | |
- name: Cache cargo | |
uses: actions/cache@v4 | |
id: cache | |
with: | |
path: ~/.cargo | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Test typed-builder | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --all-targets | |
nostd-build: | |
name: nostd Build | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
rust: [nightly] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
override: true | |
target: aarch64-unknown-none | |
- name: Ready cache | |
if: matrix.os == 'ubuntu-latest' | |
run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/ | |
- name: Cache cargo | |
uses: actions/cache@v4 | |
id: cache | |
with: | |
path: ~/.cargo | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Add rustup components | |
run: rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu | |
- name: Build with nostd | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: -Zbuild-std=core --target aarch64-unknown-none | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: nightly | |
override: true | |
components: rustfmt | |
- name: Run fmt --all -- --check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: nightly | |
override: true | |
components: clippy | |
- name: Cache cargo | |
uses: actions/cache@v4 | |
id: cache | |
with: | |
path: ~/.cargo | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Run clippy --all-targets -- | |
uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --all-targets -- | |
docs: | |
name: Docs | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: nightly | |
override: true | |
- name: Cache cargo | |
uses: actions/cache@v4 | |
id: cache | |
with: | |
path: ~/.cargo | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Run doc tests | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --doc | |
- name: Check typed-builder docs | |
uses: actions-rs/cargo@v1 | |
with: | |
command: doc | |
args: --no-deps | |
docs-ghpages: | |
name: Update Docs in GitHub Pages | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build docs | |
env: | |
GITHUB_REPO: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: |- | |
cargo doc --verbose && | |
echo "<meta http-equiv=refresh content=0;url=typed_builder/index.html>" > target/doc/index.html | |
- name: Add read permissions | |
run: |- | |
chmod --recursive +r target/doc | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: target/doc | |
deploy-ghpages: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
needs: docs-ghpages | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |