build(github-actions): use same actions as tmux-backup

This commit is contained in:
graelo 2022-11-07 09:49:13 +01:00
parent afa36d0c8f
commit 2c5c0f391c
6 changed files with 415 additions and 149 deletions

161
.github/workflows/large-scope.yml vendored Normal file
View file

@ -0,0 +1,161 @@
# Test pre-releases on a larger scope (platforms & versions) to avoid bad surprises.
name: Large scope
on:
push:
branches:
- staging
jobs:
test-versions:
name: Test version compatibility on Linux
runs-on: ubuntu-latest
strategy:
matrix:
rust: [1.60.0, beta, nightly]
steps:
- name: Rust install
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
components: rustfmt, clippy
- name: Checkout
uses: actions/checkout@v3
- name: Cache crates from crates.io
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: '${{ runner.os }}-cargo-${{ matrix.rust }}-hash-${{ hashFiles(''**/Cargo.lock'') }}'
- name: Lint
run: |
cargo fmt --all -- --check
cargo clippy -- -D warnings
# - name: Install cargo check tools
# timeout-minutes: 20
# if: ${{ matrix.rust == 'stable' }}
# run: |
# cargo install --locked cargo-outdated || true
# # cargo install --locked cargo-udeps || true # needs nightly
# cargo install --locked cargo-audit || true
# cargo install --locked cargo-pants || true
# - name: Check
# if: ${{ matrix.rust == 'stable' }}
# run: |
# cargo outdated --exit-code 1
# # cargo udeps
# rm -rf ~/.cargo/advisory-db
# cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602
# cargo pants
- name: Build (dev)
run: cargo build --all-features
- name: Build (release)
run: cargo build --all-features --release
- name: Test
run: ./ci/test_full.sh
test-other-platforms:
name: Test on other platforms with stable
runs-on: '${{ matrix.os }}'
strategy:
matrix:
include:
- os: macos-latest
target: x86_64-apple-darwin
type: unix
- os: macos-latest
target: aarch64-apple-darwin
type: unix
- os: windows-latest
target: x86_64-pc-windows-msvc
type: windows
steps:
- name: Rust install
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
components: rustfmt, clippy
- name: Checkout
uses: actions/checkout@v3
- name: Cache crates from crates.io
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: '${{ runner.os }}-${{ matrix.target }}-cargo-stable-${{ hashFiles(''**/Cargo.lock'') }}'
- name: Lint
run: |
cargo fmt --all -- --check
cargo clippy -- -D warnings
# - name: Quality - convco check
# run: |
# git show-ref
# curl -sSfLO https://github.com/convco/convco/releases/latest/download/convco-ubuntu.zip
# unzip convco-ubuntu.zip
# chmod +x convco
# ./convco check
# rm convco
# shell: bash
# - name: Quality - cargo deny check
# run: |
# curl -sSfL https://github.com/EmbarkStudios/cargo-deny/releases/download/0.12.2/cargo-deny-0.12.2-x86_64-unknown-linux-musl.tar.gz | tar zx --no-anchored cargo-deny --strip-components=1
# chmod +x cargo-deny
# mv cargo-deny ~/.cargo/bin/
# cargo deny check
# shell: bash
- name: Install cargo check tools
timeout-minutes: 20
run: |
cargo install --locked cargo-outdated || true
# cargo install --locked cargo-udeps || true # needs nightly
cargo install --locked cargo-audit || true
cargo install --locked cargo-pants || true
shell: bash
- name: Check
run: |
cargo outdated --exit-code 1
# cargo udeps
rm -rf ~/.cargo/advisory-db
cargo audit --ignore RUSTSEC-2020-0071 # time-rs, but not used by chrono, see https://github.com/chronotope/chrono/issues/602
cargo pants
shell: bash
- name: Build (dev)
run: cargo build --all-features
- name: Build (release)
run: cargo build --all-features --release
- name: Test
run: ./ci/test_full.sh