Skip to content

Bump actions/upload-artifact from 3 to 4 #234

Bump actions/upload-artifact from 3 to 4

Bump actions/upload-artifact from 3 to 4 #234

Workflow file for this run

name: Rust
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo -Z minimal-versions update
- run: cargo update -p lazy_static
- uses: dtolnay/rust-toolchain@1.60.0
id: rust-toolchain
- uses: actions/cache@v3
with:
path: |
~/.cargo
target
key: ${{runner.os}}-cargo-${{steps.rust-toolchain.outputs.cachekey}}
- run: cargo test --locked -- --skip trybuild_ui
env:
RUST_BACKTRACE: 1
RUST_LOG: info
test-no-features:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo -Z minimal-versions update
- run: cargo update -p lazy_static
- uses: dtolnay/rust-toolchain@1.60.0
id: rust-toolchain
- uses: actions/cache@v3
with:
path: |
~/.cargo
target
key: ${{ runner.os }}-cargo-${{steps.rust-toolchain.outputs.cachekey}}
- run: cargo test --locked --no-default-features --lib --tests -- --skip trybuild_ui
env:
RUST_BACKTRACE: 1
RUST_LOG: info
trybuild:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
id: rust-toolchain
with:
toolchain: "1.72"
- uses: actions/cache@v3
with:
path: |
~/.cargo
target
key: ${{ runner.os }}-cargo-${{steps.rust-toolchain.outputs.cachekey}}
- run: cargo test -- trybuild_ui
env:
RUST_BACKTRACE: 1
RUST_LOG: info
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
id: rust-toolchain
- name: Get Tarpaulin Version
id: tarpaulin-version
run: echo "::set-output name=VERSION::$(wget -qO- 'https://api.github.com/repos/xd009642/tarpaulin/releases/latest' | jq -r '.tag_name')"
- uses: actions/cache@v3
with:
path: |
~/.cargo
target
key: ${{ runner.os }}-cargo-${{steps.rust-toolchain.outputs.cachekey}}-tarpaulin-${{ steps.tarpaulin-version.outputs.VERSION }}
- name: Install Tarpaulin
run: |
ls -lh ~/.cargo || true
ls -lh ~/.cargo/bin || true
cargo install cargo-tarpaulin --version ${{ steps.tarpaulin-version.outputs.VERSION }}
- name: Run Tarpaulin coverage tests
run: |
cargo tarpaulin --verbose \
--target-dir target/tarpaulin \
--workspace \
--all-features \
--exclude-files 'cargo/*' \
--exclude-files 'derive/*' \
--exclude-files 'target/*' \
--ignore-panics --ignore-tests \
--out html --out json \
-- --skip trybuild_ui
env:
RUST_BACKTRACE: 1
RUST_LOG: info
- uses: actions/upload-artifact@v4
with:
name: tarpaulin-report
path: |
tarpaulin-report.json
tarpaulin-report.html
doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v3
with:
path: |
~/.cargo
target
key: ${{ runner.os }}-cargo-doc
- run: cargo doc --workspace --all-features
- run: tar cfJ rustdoc.tar.xz target/doc/
- uses: actions/upload-artifact@v4
with:
name: rustdoc
path: rustdoc.tar.xz
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: cargo fmt -- --check
- run: ./tests/ui/rustfmt.sh --check
readme:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo install cargo-readme
- run: cargo readme >README.md.new
- run: diff README.md README.md.new
pages:
runs-on: ubuntu-latest
needs: [coverage, doc]
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
with:
ref: gh-pages
- uses: actions/download-artifact@v3
with:
name: rustdoc
- uses: actions/download-artifact@v3
with:
name: tarpaulin-report
- run: |
test ! -d ./doc || rm -r ./doc
tar xfJ rustdoc.tar.xz --strip-components=1
rm rustdoc.tar.xz
date >./doc/.timestamp
coverage=$(jq '.files | { covered: map(.covered) | add, coverable: map(.coverable) | add } | .covered / .coverable * 10000 | round | . / 100' tarpaulin-report.json)
color=$([[ $coverage < 80 ]] && printf yellow || printf brightgreen)
wget -qO coverage.svg "https://img.shields.io/badge/coverage-$coverage%25-$color"
git add ./doc
git status
- uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "GitHub Pages for ${{ github.sha }}"