mirror of https://github.com/rapiz1/rathole.git
68 lines
1.9 KiB
YAML
68 lines
1.9 KiB
YAML
name: Rust
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
|
|
concurrency:
|
|
# Documentation suggests ${{ github.head_ref }}, but that's only available on pull_request/pull_request_target triggers, so using ${{ github.ref }}.
|
|
# On main, we want all builds to complete even if merging happens faster to make it easier to discover at which point something broke.
|
|
group: ${{ github.ref == 'refs/heads/main' && format('ci-main-{0}', github.sha) || format('ci-{0}', github.ref) }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
lints:
|
|
name: Lints
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
components: clippy
|
|
- uses: Swatinem/rust-cache@v1
|
|
- name: Clippy
|
|
run: cargo clippy -- -D warnings
|
|
- name: Setup cargo-hack
|
|
run: cargo install cargo-hack
|
|
- name: Check all features
|
|
run: cargo hack check --feature-powerset --no-dev-deps
|
|
|
|
build:
|
|
name: Build for ${{ matrix.target }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
exe: rathole
|
|
target: x86_64-unknown-linux-gnu
|
|
- os: windows-latest
|
|
exe: rathole.exe
|
|
target: x86_64-pc-windows-msvc
|
|
- os: macos-latest
|
|
exe: rathole
|
|
target: x86_64-apple-darwin
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
- uses: Swatinem/rust-cache@v1
|
|
- name: Build release
|
|
run: cargo build --release
|
|
- name: Run tests
|
|
run: cargo test --release --verbose
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: rathole-${{ matrix.target }}
|
|
path: target/release/${{ matrix.exe }}
|