Support multiple modifier keys #125
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: build | |
on: [push, pull_request] | |
env: | |
CRATE: powerpack | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
toolchain: [stable, beta, nightly] | |
env: | |
RUSTFLAGS: --deny warnings | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Rust | |
run: | | |
rustup set profile default | |
rustup toolchain install ${{ matrix.toolchain }} | |
rustup override set ${{ matrix.toolchain }} | |
- name: Rustfmt | |
run: cargo fmt -- --check | |
- name: Clippy | |
continue-on-error: ${{ matrix.toolchain == 'nightly' }} | |
run: cargo clippy --workspace --all-targets | |
- name: Test | |
run: cargo test --workspace | |
check-version: | |
needs: build | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Calculate version from tag | |
id: version | |
run: echo "::set-output name=value::${GITHUB_REF#refs/tags/}" | |
- name: Check tag against package versions | |
run: | | |
grep '^version = "${{ steps.version.outputs.value }}"$' Cargo.toml | |
grep '^version = "${{ steps.version.outputs.value }}"$' crates/cli/Cargo.toml | |
grep '^version = "${{ steps.version.outputs.value }}"$' crates/detach/Cargo.toml | |
grep '^version = "${{ steps.version.outputs.value }}"$' crates/env/Cargo.toml | |
publish: | |
needs: check-version | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Rust | |
run: | | |
rustup set profile minimal | |
rustup toolchain install stable | |
rustup override set stable | |
- name: Publish | |
env: | |
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }} | |
run: bash ci/publish-workspace.sh | |
release: | |
needs: check-version | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
target: [x86_64-apple-darwin, aarch64-apple-darwin] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Rust | |
run: | | |
rustup set profile minimal | |
rustup toolchain install stable | |
rustup override set stable | |
rustup target add ${{ matrix.target }} | |
- name: Calculate version from tag | |
id: version | |
run: echo "::set-output name=value::${GITHUB_REF#refs/tags/}" | |
- name: Build | |
run: cargo build --package powerpack-cli --locked --release --target ${{ matrix.target }} | |
- name: Strip binary | |
run: strip target/${{ matrix.target }}/release/$CRATE | |
- name: Archive | |
id: archive | |
run: | | |
mkdir release | |
archive=$CRATE-${{ steps.version.outputs.value }}-${{ matrix.target }}.tar.gz | |
cp target/${{ matrix.target }}/release/$CRATE release/$CRATE | |
cp LICENSE* release | |
cp README.md release | |
cd release | |
tar cfz "../$archive" -- * | |
cd .. | |
rm -r release | |
echo "::set-output name=path::$archive" | |
- uses: softprops/action-gh-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
files: ${{ steps.archive.outputs.path }} |