on main help sign in
ci: added
commit3e1b069ee5060d219312fddeb8e3ace7827f9b89 authorrobcholz <84130577+robcholz@users.noreply.github.com> dateSat 7 Feb 2026, 21:08 (8 months ago) parent68d3af0
2 files changed+114
.github/workflows/ci.yml+51 .github/workflows/release.yml+63
.github/workflows/ci.ymlnew file+51
@@ -0,0 +1,51 @@
1+name: CI
2+
3+on:
4+ push:
5+ branches: [main]
6+ pull_request:
7+
8+concurrency:
9+ group: ci-${{ github.ref }}
10+ cancel-in-progress: true
11+
12+jobs:
13+ fmt:
14+ name: Format
15+ runs-on: macos-latest
16+ steps:
17+ - uses: actions/checkout@v6
18+ - name: Install Rust
19+ uses: dtolnay/rust-toolchain@stable
20+ with:
21+ components: rustfmt
22+ - name: Cache Rust
23+ uses: Swatinem/rust-cache@v2
24+ - name: cargo fmt
25+ run: cargo fmt --all -- --check
26+
27+ clippy:
28+ name: Clippy
29+ runs-on: macos-latest
30+ steps:
31+ - uses: actions/checkout@v6
32+ - name: Install Rust
33+ uses: dtolnay/rust-toolchain@stable
34+ with:
35+ components: clippy
36+ - name: Cache Rust
37+ uses: Swatinem/rust-cache@v2
38+ - name: cargo clippy
39+ run: cargo clippy --all-targets --all-features -- -D warnings
40+
41+ build:
42+ name: Build
43+ runs-on: macos-latest
44+ steps:
45+ - uses: actions/checkout@v6
46+ - name: Install Rust
47+ uses: dtolnay/rust-toolchain@stable
48+ - name: Cache Rust
49+ uses: Swatinem/rust-cache@v2
50+ - name: cargo build
51+ run: cargo build --locked
.github/workflows/release.ymlnew file+63
@@ -0,0 +1,63 @@
1+name: Build and Release
2+
3+permissions:
4+ contents: write
5+
6+on:
7+ push:
8+ branches: [main]
9+
10+concurrency:
11+ group: release-${{ github.ref }}
12+ cancel-in-progress: true
13+
14+jobs:
15+ build:
16+ runs-on: macos-latest
17+
18+ steps:
19+ - uses: actions/checkout@v6
20+
21+ - name: Install Rust
22+ uses: dtolnay/rust-toolchain@stable
23+
24+ - name: Cache Rust
25+ uses: Swatinem/rust-cache@v2
26+
27+ - name: Build release binary
28+ run: cargo build --release --locked
29+
30+ - name: Set short git commit SHA
31+ id: vars
32+ run: |
33+ echo "SHA_SHORT=$(git rev-parse --short ${{ github.sha }})" >> $GITHUB_ENV
34+ echo "BUILD_DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
35+
36+ - name: Package binary
37+ run: |
38+ cd target/release
39+ zip vibebox-macos-arm64.zip vibebox
40+
41+ - name: Create sha release
42+ run: |
43+ gh release create "${{ env.BUILD_DATE }}-${{ env.SHA_SHORT }}" \
44+ --title "${{ env.BUILD_DATE }}-${{ env.SHA_SHORT }}" \
45+ --notes "Built from commit ${{ github.sha }}" \
46+ target/release/vibebox-macos-arm64.zip
47+ env:
48+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49+
50+ - name: Delete existing latest release
51+ run: gh release delete latest --cleanup-tag --yes || true
52+ env:
53+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54+
55+ - name: Create latest release
56+ run: |
57+ gh release create latest \
58+ --title "Latest" \
59+ --notes "Built from commit ${{ github.sha }}" \
60+ --prerelease \
61+ target/release/vibebox-macos-arm64.zip
62+ env:
63+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}