Add our own ssh config parser #155
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: CI | |
on: | |
push: | |
branches: | |
- dev | |
- main | |
pull_request: | |
branches: | |
- dev | |
- main | |
workflow_dispatch: | |
env: | |
BUILT_DEB_FILE: "invalid.deb" # updated by make-debian-package script | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: 1 | |
jobs: | |
# Build the app on all supported platforms, at least for the time being | |
build: | |
strategy: | |
matrix: | |
include: | |
- build: x86_64-musl | |
host: ubuntu-latest | |
target: x86_64-unknown-linux-musl | |
rust: stable | |
build_deb: true | |
- build: aarch64-musl | |
host: ubuntu-latest | |
target: aarch64-unknown-linux-musl | |
rust: stable | |
build_deb: true | |
runs-on: ${{ matrix.host }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
targets: ${{ matrix.target }} | |
- name: Install tools | |
uses: taiki-e/[email protected] | |
with: | |
tool: cross,cargo-deb | |
#- name: Set minimal profile (Windows only) | |
# if: matrix.host == 'windows-latest' | |
# run: rustup set profile minimal | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: "${{ matrix.build }}" | |
cache-on-failure: true | |
- name: install packages (ubuntu builds only) | |
if: startsWith(matrix.host, 'ubuntu') | |
run: scripts/install-ubuntu-packages | |
# native builds need all of these; cross builds only need binutils-multiarch | |
#- name: Build | |
# run: cross build --release --locked --target ${{ matrix.target }} | |
- uses: taiki-e/[email protected] | |
id: build | |
with: | |
bin: qcp | |
token: ${{ secrets.GITHUB_TOKEN }} | |
target: ${{ matrix.target }} | |
include: README.md,LICENSE,CHANGELOG.md | |
leading-dir: true | |
tar: unix | |
zip: windows | |
dry_run: true | |
- name: Make deb package | |
if: ${{ matrix.build_deb }} | |
run: scripts/make-debian-package --no-release ${{ matrix.target }} | |
- name: Upload binary artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: qcp-tarball-${{ matrix.target }} | |
path: ${{ steps.build.outputs.archive }}.tar.gz | |
- name: Upload deb artifact | |
if: ${{ matrix.build_deb }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: qcp-deb-${{ matrix.target }} | |
# this env var is set by make-debian-package | |
path: ${{ env.BUILT_DEB_FILE }} | |
# We only need to run the checks on a single platform | |
checks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
cache-on-failure: true | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
- name: install packages | |
run: scripts/install-ubuntu-packages | |
# Checks begin here! | |
- run: cargo fmt --all --check | |
- run: cargo test --locked | |
- run: cargo clippy --locked --all-targets | |
- run: cargo build --locked --all-targets | |
- run: cargo doc --no-deps --locked |