ci: build Windows binaries; add cross-platform CI test matrix
Release / crates-io (push) Canceled after 0s
Release / release (macos-14, aarch64-apple-darwin) (push) Canceled after 0s
Release / release (ubuntu-latest, x86_64-unknown-linux-gnu) (push) Canceled after 0s
Release / release (windows-latest, x86_64-pc-windows-msvc) (push) Canceled after 0s
Release / crates-io (push) Canceled after 0s
Release / release (macos-14, aarch64-apple-darwin) (push) Canceled after 0s
Release / release (ubuntu-latest, x86_64-unknown-linux-gnu) (push) Canceled after 0s
Release / release (windows-latest, x86_64-pc-windows-msvc) (push) Canceled after 0s
- release.yml: add x86_64-pc-windows-msvc target, OS-aware packaging (.exe + .zip) - ci.yml: split into lint (fmt/clippy) + test matrix (ubuntu/windows/macos) - use getrandom for the admin/key token CSPRNG (secure on Windows too) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
74d0295181
commit
220df29888
@@ -2,11 +2,11 @@ name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, master ]
|
||||
branches: [main, master]
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -18,6 +18,18 @@ jobs:
|
||||
run: cargo fmt --all -- --check
|
||||
- name: Clippy
|
||||
run: cargo clippy --all-targets -- -D warnings
|
||||
|
||||
test:
|
||||
name: test (${{ matrix.os }})
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest, windows-latest, macos-14]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: Build
|
||||
run: cargo build --release
|
||||
- name: Test
|
||||
|
||||
@@ -36,6 +36,8 @@ jobs:
|
||||
target: x86_64-unknown-linux-gnu
|
||||
- os: macos-14
|
||||
target: aarch64-apple-darwin
|
||||
- os: windows-latest
|
||||
target: x86_64-pc-windows-msvc
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
@@ -47,12 +49,19 @@ jobs:
|
||||
- name: Package
|
||||
shell: bash
|
||||
run: |
|
||||
bin=cortiq-gateway
|
||||
[ "${{ runner.os }}" = "Windows" ] && bin=cortiq-gateway.exe
|
||||
staging="cortiq-gateway-${{ github.ref_name }}-${{ matrix.target }}"
|
||||
mkdir "$staging"
|
||||
cp "target/${{ matrix.target }}/release/cortiq-gateway" "$staging"/
|
||||
cp "target/${{ matrix.target }}/release/$bin" "$staging"/
|
||||
cp README.md LICENSE config/gateway.example.toml "$staging"/
|
||||
tar czf "$staging.tar.gz" "$staging"
|
||||
echo "ASSET=$staging.tar.gz" >> "$GITHUB_ENV"
|
||||
if [ "${{ runner.os }}" = "Windows" ]; then
|
||||
7z a "$staging.zip" "$staging" >/dev/null
|
||||
echo "ASSET=$staging.zip" >> "$GITHUB_ENV"
|
||||
else
|
||||
tar czf "$staging.tar.gz" "$staging"
|
||||
echo "ASSET=$staging.tar.gz" >> "$GITHUB_ENV"
|
||||
fi
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
|
||||
Reference in New Issue
Block a user