fix(deps): update crates #568
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: | |
push: | |
branches: [main] | |
tags: | |
- v* | |
paths: | |
- "**" | |
- "!docs/**" | |
- "!.github/**" | |
- ".github/workflows/ci.yml" | |
pull_request: | |
branches: [main] | |
paths: | |
- "**" | |
- "!docs/**" | |
- "!.github/**" | |
- ".github/workflows/ci.yml" | |
workflow_dispatch: | |
inputs: | |
lint: | |
description: Run lint job | |
type: boolean | |
default: true | |
test: | |
description: Run test job | |
type: boolean | |
default: true | |
build: | |
description: Run build job | |
type: boolean | |
default: false | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
lint: | |
name: lint | |
runs-on: ubuntu-latest | |
if: github.event_name != 'workflow_dispatch' || (github.event_name == 'workflow_dispatch' && inputs.lint) | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: clippy, rustfmt | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- run: cargo fmt --check | |
- run: cargo clippy --all-features -- -D warnings | |
- run: cargo clippy --features all-formats -- -D warnings | |
test: | |
name: Test Suite | |
runs-on: ${{ matrix.target.runner }} | |
if: github.event_name != 'workflow_dispatch' || (github.event_name == 'workflow_dispatch' && inputs.test) | |
needs: lint | |
strategy: | |
matrix: | |
target: | |
- triple: x86_64-pc-windows-gnu | |
runner: windows-latest | |
- triple: x86_64-pc-windows-msvc | |
runner: windows-latest | |
- triple: x86_64-apple-darwin | |
runner: macos-latest | |
- triple: x86_64-unknown-linux-gnu | |
runner: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
target: ${{ matrix.target.triple }} | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-${{ matrix.target.triple }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- run: cargo test --features all-formats --target ${{ matrix.target.triple }} | |
build: | |
name: build | |
needs: test | |
runs-on: ${{ matrix.target.runner }} | |
if: (github.event_name == 'workflow_dispatch' && inputs.build) || (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) | |
strategy: | |
matrix: | |
target: | |
# each musl target also needs to use vendored openssl-sys in Cargo.toml for the build to work | |
- triple: x86_64-pc-windows-msvc | |
filename: rotz.exe | |
runner: windows-latest | |
compile: native | |
# Waiting for https://github.com/briansmith/ring/issues/1614 to be released | |
# # - triple: aarch64-pc-windows-msvc | |
# # filename: rotz.exe | |
# # runner: windows-latest | |
# # compile: native | |
- triple: i686-pc-windows-msvc | |
filename: rotz.exe | |
runner: windows-latest | |
compile: native | |
- triple: x86_64-unknown-linux-gnu | |
filename: rotz | |
runner: ubuntu-latest | |
compile: cross | |
- triple: aarch64-unknown-linux-gnu | |
filename: rotz | |
runner: ubuntu-latest | |
compile: cross | |
- triple: i686-unknown-linux-gnu | |
filename: rotz | |
runner: ubuntu-latest | |
compile: cross | |
- triple: x86_64-unknown-linux-musl | |
filename: rotz | |
runner: ubuntu-latest | |
compile: cross | |
- triple: aarch64-unknown-linux-musl | |
filename: rotz | |
runner: ubuntu-latest | |
compile: cross | |
- triple: i686-unknown-linux-musl | |
filename: rotz | |
runner: ubuntu-latest | |
compile: cross | |
- triple: x86_64-apple-darwin | |
filename: rotz | |
runner: macos-latest | |
compile: native | |
- triple: aarch64-apple-darwin | |
filename: rotz | |
runner: macos-latest | |
compile: native | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
target: ${{ matrix.target.triple }} | |
if: matrix.target.compile == 'native' | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }} | |
- run: cargo install -f cross | |
if: matrix.target.compile == 'cross' | |
- run: cargo build --features all-formats --release --target ${{ matrix.target.triple }} --target-dir ${{ runner.temp }} | |
if: matrix.target.compile == 'native' | |
- run: cross build --features all-formats --release --target ${{ matrix.target.triple }} --target-dir ${{ runner.temp }} | |
if: matrix.target.compile == 'cross' | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: rotz-${{ matrix.target.triple }} | |
path: ${{ runner.temp }}/${{ matrix.target.triple }}/release/${{ matrix.target.filename }} | |
if-no-files-found: error | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
needs: build | |
environment: crates | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
env: | |
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- run: cargo publish --dry-run | |
- uses: actions/download-artifact@v3 | |
with: | |
path: artifacts | |
- run: | | |
cd artifacts; | |
for i in */; do | |
cd "$i"; | |
zip -r "../${i%/}.zip" ./; | |
cd ..; | |
rm -rf "$i"; | |
done | |
- name: Create github Release | |
uses: docker://antonyurchenko/git-release:v5 | |
with: | |
args: artifacts/* | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- run: git clean -xdf | |
- run: cargo publish |