Skip to content

Repair aarch64 Linux dist builds #356

Repair aarch64 Linux dist builds

Repair aarch64 Linux dist builds #356

Workflow file for this run

# SPDX-FileCopyrightText: The Ferrocene Developers
# SPDX-License-Identifier: MIT OR Apache-2.0
---
name: CI
on:
push:
branches: [staging, trying]
pull_request: {}
permissions:
# Allow write access to the source code to enable GitHub Pages publishing.
contents: read
jobs:
build-test:
name: Build and test
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
# Windows seems to have an existing non-RustUp tools in `~/.cargo/bin/` which have to be removed
- if: ${{ matrix.os == 'windows-latest' }}
shell: bash
run: |
rm -rv C://Users/runneradmin/.cargo/bin/rust-analyzer.exe
rm -rv C://Users/runneradmin/.cargo/bin/rustfmt.exe
rm -rv C://Users/runneradmin/.cargo/bin/cargo-fmt.exe
- name: Make sure Rust stable is installed
shell: bash
run: |
rustup update stable --no-self-update
rustup default stable
# - name: Cache Rust dependencies
# uses: ferrous-systems/shared-github-actions/cache-rust@main
# - name: Check formatting
# if: ${{ matrix.os == 'ubuntu-latest' }}
# shell: bash
# run: cargo fmt --all --check
# - name: Check Clippy warnings
# shell: bash
# run: cargo clippy --workspace --tests --locked -- -Dwarnings
# - name: Prepare file to record snapshots used by insta
# shell: bash
# run: echo "INSTA_SNAPSHOT_REFERENCES_FILE=$(mktemp)" >> "${GITHUB_ENV}"
# - name: Run the test suite (Without AWS KMS)
# if: ${{ runner.os != 'Linux' }}
# shell: bash
# run: cargo test --timings --workspace --locked
# - name: Run the test suite (With AWS KMS)
# if: ${{ runner.os == 'Linux' }}
# shell: bash
# run: cargo test --timings --workspace --locked --features aws-kms -- --test-threads=1
# # Incompatible with Windows, insta snapshots output Windows paths
# # Incompatible with Mac, find does not have `-n`, diff does not have `--color`
# - if: ${{ matrix.os == 'ubuntu-latest' }}
# name: Ensure there are no unused insta snapshots
# shell: bash
# run: diff -u --color <(find -name "*.snap" | xargs realpath | sort | uniq) <(cat "${INSTA_SNAPSHOT_REFERENCES_FILE}" | xargs realpath | sort | uniq)
# - name: Build debug builds
# shell: bash
# run: cargo build
- name: DEBUG ME HERE
shell: bash
run: |
rustup target add aarch64-unknown-linux-gnu
cargo tree -i openssl-sys --target aarch64-unknown-linux-gnu
CARGO_BUILD_JOBS=1 cargo build --target aarch64-unknown-linux-gnu
- name: Upload criticalup debug build
uses: actions/upload-artifact@v4
with:
name: criticalup-${{ matrix.os }}
path: target/debug/criticalup
- name: Upload upload criticalup-dev debug build
uses: actions/upload-artifact@v4
with:
name: criticalup-dev-${{ matrix.os }}
path: target/debug/criticalup-dev
- name: Upload cargo timings
uses: actions/upload-artifact@v4
with:
name: cargo-timings-${{ matrix.os }}
path: target/cargo-timings/cargo-timing.html
license:
name: Check licenses
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install REUSE
run: pipx install reuse
- name: Check compliance with REUSE
run: reuse lint
docs:
name: Build documentation
runs-on: ubuntu-22.04
steps:
- name: Checkout the source code
uses: actions/checkout@v4
- name: Build documentation and check links
working-directory: ./docs
run: ./make.py --check-links
- name: Install Python dependencies
working-directory: ./docs
run: python3 -m pip install reuse black flake8
- name: Verify Python code formatting
working-directory: ./docs
run: black . --check --diff --color
- name: Lint Python code with flake8
working-directory: ./docs
run: flake8 . --exclude .venv
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/build/html
deploy-docs:
if: github.event_name == 'push' && github.ref == 'refs/heads/staging'
needs:
- docs
environment:
name: github-pages
url: ${{ steps.github-pages.outputs.page_url }}
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
id: github-pages
build-finished:
name: CI build successful
runs-on: ubuntu-latest
if: success()
needs:
- build-test
- docs
- deploy-docs
steps:
- name: Mark the build as successful
run: exit 0