Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 52 additions & 27 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ jobs:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v31
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
- uses: cachix/cachix-action@v14
- uses: cachix/cachix-action@v17
with:
name: sinowealth-kb-tool
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
Expand All @@ -33,9 +33,9 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Cargo cache
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
Expand All @@ -47,57 +47,80 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Cargo cache
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
./target
key: test-cargo-registry
- name: Install and configure dependencies
run: |
sudo apt-get install -qq libusb-1.0.0-dev
- name: Run tests
run: cargo test --bins --verbose
- name: Run tests (hidraw backend)
run: cargo test --workspace --lib --bins --verbose
- name: Run tests (nusb backend)
run: cargo test --workspace --lib --bins --features nusb --verbose

wasm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Cargo cache
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
./target
key: wasm-cargo-registry
- name: Install wasm target
run: rustup target add wasm32-unknown-unknown
- name: Build sinowealth-isp for the web (WebHID)
run: cargo build -p sinowealth-isp --target wasm32-unknown-unknown
env:
RUSTFLAGS: "--cfg=web_sys_unstable_apis"

build:
strategy:
fail-fast: false
matrix:
include:
# Two Linux variants: the default hidraw backend and the nusb backend.
- TARGET: x86_64-unknown-linux-gnu
OS: ubuntu-latest
FEATURES: ""
LABEL: hidraw
- TARGET: x86_64-unknown-linux-gnu
OS: ubuntu-latest
FEATURES: "nusb"
LABEL: nusb
- TARGET: x86_64-apple-darwin
OS: macos-latest
FEATURES: ""
LABEL: ""
- TARGET: x86_64-pc-windows-msvc
OS: windows-latest
FEATURES: ""
LABEL: ""
needs: test
runs-on: ${{ matrix.OS }}
env:
NAME: sinowealth-kb-tool
TARGET: ${{ matrix.TARGET }}
OS: ${{ matrix.OS }}
FEATURES: ${{ matrix.FEATURES }}
LABEL: ${{ matrix.LABEL }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Cargo cache
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
./target
key: build-cargo-registry-${{matrix.TARGET}}
- name: Install and configure dependencies
run: |
# dependencies are only needed on ubuntu as that's the only place where
# we make cross-compilation
if [[ $OS =~ ^ubuntu.*$ ]]; then
sudo apt-get install -qq libusb-1.0-0-dev
fi
key: build-cargo-registry-${{matrix.TARGET}}-${{matrix.LABEL}}
- name: Install rust target
run: rustup target add $TARGET
- name: Run build
run: cargo build --release --verbose --target $TARGET
run: cargo build --release --verbose --target $TARGET ${FEATURES:+--features "$FEATURES"}
- name: Compress
run: |
mkdir -p ./artifacts
Expand All @@ -112,12 +135,14 @@ jobs:
else
TAG=$GITHUB_SHA
fi
# include the backend label in the artifact name when set (Linux)
ARTIFACT=$NAME-$TARGET${LABEL:+-$LABEL}-$TAG
mv ./target/$TARGET/release/$EXEC ./$EXEC
tar -czf ./artifacts/$NAME-$TARGET-$TAG.tar.gz $EXEC
tar -czf ./artifacts/$ARTIFACT.tar.gz $EXEC
- name: Archive artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: result-${{ matrix.TARGET }}
name: result-${{ matrix.TARGET }}${{ matrix.LABEL && format('-{0}', matrix.LABEL) || '' }}
path: |
./artifacts

Expand All @@ -129,13 +154,13 @@ jobs:
contents: write
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
pattern: result-*
merge-multiple: true
path: ./artifacts
- name: Release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v3
with:
draft: true
generate_release_notes: true
Expand Down
Loading