Derive common traits on KeyRingIdentifier (#15) #81
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: Checks | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
# Taken from rust-lang/libz-sys CI/CD example. | |
# | |
# This job downloads and stores `cross` as an artifact, so that it can be | |
# redownloaded across all of the jobs. | |
install-cross: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: XAMPPRocky/get-github-release@v1 | |
id: cross | |
with: | |
owner: cross-rs | |
repo: cross | |
matches: ${{ matrix.platform }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: cross-${{ matrix.platform }} | |
path: ${{ steps.cross.outputs.install_path }} | |
strategy: | |
matrix: | |
platform: [linux-musl] | |
# Build and run unit tests | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Build | |
run: cargo build --verbose | |
- name: Run tests | |
run: cargo test --verbose | |
# Ensure clippy and formatting pass | |
clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: clippy | |
- name: Run Clippy | |
run: cargo clippy --verbose -- --deny "warnings" | |
- name: Run RustFmt | |
run: cargo fmt -- --check | |
# Cross compile for multiple architectures. | |
# | |
# Cannot run the unit tests until we can specify a seccomp profile for cross' | |
# docker images. Since the default seccomp profile blocks keyctl calls. | |
cross-linux: | |
runs-on: ubuntu-latest | |
needs: install-cross | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Download Cross | |
uses: actions/download-artifact@v3 | |
with: | |
name: cross-linux-musl | |
path: /tmp | |
- run: rustup toolchain install ${{ matrix.channel }} | |
- run: chmod +x /tmp/cross | |
- name: Build | |
run: /tmp/cross build --all-features --target ${{ matrix.target }} | |
strategy: | |
fail-fast: false | |
matrix: | |
channel: [stable] | |
target: | |
- aarch64-unknown-linux-musl | |
- arm-unknown-linux-musleabihf | |
- i686-unknown-linux-musl | |
- x86_64-unknown-linux-musl | |
- x86_64-unknown-linux-gnu | |
# Run miri (commented out since miri doesn't support the keyctl | |
# syscalls) | |
#miri: | |
# name: "miri" | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: actions-rs/toolchain@v1 | |
# with: | |
# profile: minimal | |
# toolchain: nightly | |
# override: true | |
# components: miri | |
# - name: Setup Miri | |
# run: cargo +nightly miri setup | |
# - name: Test with Miri | |
# run: cargo +nightly miri test |