Modified documentation and Cargo.toml for building on aarch64 macOS. #228
Workflow file for this run
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: Rust CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 | |
- name: Setup Rust | |
run: | | |
set -e | |
rustup toolchain install stable --no-self-update --profile minimal --component rustfmt | |
rustup default stable | |
- name: Run Clippy | |
run: cargo fmt --all --check | |
yara: | |
needs: lint | |
uses: ./.github/workflows/yara.yaml | |
with: | |
runs-on: ubuntu-22.04 | |
clippy: | |
needs: yara | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 | |
- name: Download YARA | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: ${{ needs.yara.outputs.artifacts }} | |
path: .yara | |
- name: Setup Rust | |
run: | | |
set -e | |
rustup toolchain install stable --no-self-update --profile minimal --component clippy | |
rustup default stable | |
- name: Cache dependencies | |
uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 # v2.7.0 | |
with: | |
key: x86_64-unknown-linux-gnu | |
- name: Run Clippy | |
env: | |
YARA_INCLUDE_DIR: ${{ github.workspace }}/.yara/${{ needs.yara.outputs.include-dir }} | |
YARA_LIBRARY_PATH: ${{ github.workspace }}/.yara/${{ needs.yara.outputs.library-path }} | |
run: cargo clippy -- -D clippy::all -D clippy::pedantic -D clippy::cargo -A clippy::cargo_common_metadata | |
yara-test: | |
needs: clippy | |
strategy: | |
fail-fast: true | |
matrix: | |
runs-on: | |
- ubuntu-22.04 | |
uses: ./.github/workflows/yara.yaml | |
with: | |
runs-on: ${{ matrix.runs-on }} | |
yara-test-output: | |
needs: yara-test | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Read Matrix Output | |
id: read | |
uses: cloudposse/github-action-matrix-outputs-read@main | |
with: | |
matrix-step-name: yara | |
outputs: | |
result: ${{ steps.read.outputs.result }} | |
test: | |
needs: [yara-test, yara-test-output] | |
strategy: | |
matrix: | |
triple: | |
- runs-on: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
runs-on: ${{ matrix.triple.runs-on }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 | |
- name: Download YARA | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: ${{ fromJson(needs.yara-test-output.outputs.result).artifacts[matrix.triple.runs-on] }} | |
path: .yara | |
- name: Setup Rust | |
run: | | |
set -e | |
rustup toolchain install stable --no-self-update --profile minimal | |
rustup default stable | |
- name: Cache dependencies | |
uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 # v2.7.0 | |
with: | |
key: ${{ matrix.triple.target }} | |
- name: Run tests | |
env: | |
RUST_BACKTRACE: full | |
YARA_INCLUDE_DIR: ${{ github.workspace }}/.yara/${{ needs.yara-test.outputs.include-dir }} | |
YARA_LIBRARY_PATH: ${{ github.workspace }}/.yara/${{ needs.yara-test.outputs.library-path }} | |
run: cargo test --no-fail-fast | |
docs-build: | |
needs: [yara] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: "Checkout repository" | |
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 | |
- name: Cache dependencies | |
uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 # v2.7.0 | |
with: | |
key: x86_64-unknown-linux-gnu | |
- name: Download YARA | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: ${{ needs.yara.outputs.artifacts }} | |
path: .yara | |
- name: "Build docs with cargo" | |
run: cargo doc --no-deps --document-private-items | |
env: | |
YARA_INCLUDE_DIR: ${{ github.workspace }}/.yara/${{ needs.yara.outputs.include-dir }} | |
YARA_LIBRARY_PATH: ${{ github.workspace }}/.yara/${{ needs.yara.outputs.library-path }} | |
# `.lock` is set to to rw-------, which causes actions/deploy-pages to fail | |
# because it's expecting all files to be at least rw-r--r-- | |
- name: "Remove '.lock' file" | |
run: rm ./target/doc/.lock | |
- name: "Upload artifact" | |
uses: actions/upload-pages-artifact@a753861a5debcf57bf8b404356158c8e1e33150c # v2.0.0 | |
with: | |
path: ./target/doc | |
docs-deploy: | |
needs: docs-build | |
if: github.ref == 'refs/heads/main' | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: "Deploy to GitHub Pages" | |
id: deployment | |
uses: actions/deploy-pages@9dbe3824824f8a1377b8e298bafde1a50ede43e5 # v2.0.4 |