Skip to content

Appease new clippy lint #362

Appease new clippy lint

Appease new clippy lint #362

Workflow file for this run

on: [push]
name: Continuous integration
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: check
test:
name: Test Suite
runs-on: ${{ matrix.runs-on }}
strategy:
matrix:
runs-on:
- ubuntu-latest
- windows-latest
- macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: test
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- run: rustup component add rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- run: rustup component add clippy
- uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings -D clippy::pedantic
build-release-linux:
needs: [check, test, fmt, clippy]
runs-on: ${{ matrix.runs-on }}
strategy:
matrix:
runs-on:
- ubuntu-latest
arch:
- x86_64
- aarch64
steps:
- uses: actions/checkout@v2
# yes, we install the aarch64 compiler everywhere. why make things harder than they need to be?
- run: podman run -it --rm -v $(pwd):/src -w /src -e ARCH=${{ matrix.arch }} docker.io/library/debian:oldstable sh -c 'apt update && apt install -y curl gcc-aarch64-linux-gnu build-essential && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --target $ARCH-unknown-linux-gnu --profile minimal -y && ~/.cargo/bin/cargo build --release --target $ARCH-unknown-linux-gnu'
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-artifact@v4
with:
name: ubpkg-${{ matrix.runs-on }}-${{ matrix.arch }}
path: target/${{ matrix.arch }}-unknown-linux-gnu/release/ubpkg
build-release-mac:
needs: [check, test, fmt, clippy]
runs-on: ${{ matrix.runs-on }}
strategy:
matrix:
runs-on:
- macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
target: x86_64-apple-darwin
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --target=x86_64-apple-darwin
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --target=aarch64-apple-darwin
- run: lipo -create -output target/ubpkg target/x86_64-apple-darwin/release/ubpkg target/aarch64-apple-darwin/release/ubpkg
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-artifact@v4
with:
name: ubpkg-${{ matrix.runs-on }}
path: target/ubpkg
build-release-windows:
needs: [check, test, fmt, clippy]
runs-on: ${{ matrix.runs-on }}
strategy:
matrix:
runs-on:
- windows-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: build
args: --release
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-artifact@v4
with:
name: ubpkg-${{ matrix.runs-on }}
path: target/release/ubpkg.exe
create-release:
needs: [build-release-linux,build-release-mac,build-release-windows]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Create release
run: |
mv ubpkg-ubuntu-latest-x86_64/ubpkg ubpkg-linux-x86_64
mv ubpkg-ubuntu-latest-aarch64/ubpkg ubpkg-linux-aarch64
mv ubpkg-macos-latest/ubpkg ubpkg-macos
mv ubpkg-windows-latest/ubpkg.exe ubpkg.exe
d=$(date "+%Y-%m-%d_%H%M")
gh release create --generate-notes -t "Release $d" release_$d ubpkg-linux-x86_64 ubpkg-linux-aarch64 ubpkg-macos ubpkg.exe
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.ref == 'refs/heads/main' && github.event_name == 'push'