diff options
| author | Nikolay Govorov <me@govorov.online> | 2026-03-29 20:36:38 +0100 |
|---|---|---|
| committer | Nikolay Govorov <me@govorov.online> | 2026-03-29 20:36:38 +0100 |
| commit | 58a38308cd83909b67c217203d4bfa9b0b9bfb5d (patch) | |
| tree | 1b6b5e3611b11f282ef707d510ff877cf1996207 | |
| parent | a71422d71460185a0603daaeb3826229e084061b (diff) | |
| download | tar tar.gz tar.bz2 tar.lz tar.xz tar.zst zip | |
Eliminates unnecessary rebuilds on CI
Diffstat
| -rw-r--r-- | .github/workflows/build.yml | 19 | +13 −6 |
| -rw-r--r-- | README.md | 2 | +1 −1 |
| -rwxr-xr-x | tests/smoke/run-local.sh | 10 | +4 −6 |
3 files changed, 18 insertions, 13 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5f65ced..0486df0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,9 +33,6 @@ jobs: - name: Check formatting run: cargo fmt --all --check - - name: Run clippy - run: cargo clippy --all-targets --all-features -- -D warnings - build: name: Build (${{ matrix.arch }}) runs-on: ${{ matrix.runner }} @@ -62,6 +59,7 @@ jobs: passphrase: ${{ secrets.GPG_PASSPHRASE }} gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} + - run: cargo clippy --all-targets --all-features --release -- -D warnings - run: cargo build --release - run: cargo test --all-features --release --locked @@ -106,6 +104,11 @@ jobs: name: packages-${{ matrix.arch }} path: dist/* + - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 + with: + name: binary-${{ matrix.arch }} + path: target/release/recluse + smoke: name: Smoke tests runs-on: ubuntu-24.04 @@ -114,11 +117,15 @@ jobs: steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable - - uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2 + - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 + with: + name: binary-amd64 + path: target/release/ - name: Run smoke tests against local instance - run: ./tests/smoke/run-local.sh + run: | + chmod +x target/release/recluse + ./tests/smoke/run-local.sh publish: name: Publish nightly build diff --git a/README.md b/README.md index c01f119..d8ed87f 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ is **not** intended for production use. sudo apt install curl gnupg curl -fsSL https://github.com/dimidiumlabs/recluse/releases/download/nightly/public.gpg | sudo gpg --dearmor -o /usr/share/keyrings/recluse.gpg -echo "deb [signed-by=/usr/share/keyrings/recluse.gpg] https://recluse.hel1.your-objectstorage.com/apt/ nightly main" | sudo tee /etc/apt/sources.list.d/recluse.list +echo "deb [signed-by=/usr/share/keyrings/recluse.gpg] https://dimidiumlabs.fsn1.your-objectstorage.com/apt/ nightly main" | sudo tee /etc/apt/sources.list.d/recluse.list sudo apt update && sudo apt install recluse sudo systemctl enable --now recluse diff --git a/tests/smoke/run-local.sh b/tests/smoke/run-local.sh index 1e0676e..e675abc 100755 --- a/tests/smoke/run-local.sh +++ b/tests/smoke/run-local.sh @@ -2,7 +2,8 @@ # Copyright (c) 2026 Nikolay Govorov # SPDX-License-Identifier: AGPL-3.0-or-later -# Builds recluse, starts it in a temporary directory, runs smoke tests, cleans up. +# Starts recluse in a temporary directory, runs smoke tests, cleans up. +# Expects a prebuilt binary at target/release/recluse (run `cargo build --release` first). # # Usage: # ./tests/smoke/run-local.sh # default port 2025 @@ -10,6 +11,7 @@ set -euo pipefail +BIN="target/release/recluse" PORT="${RECLUSE_PORT:-2025}" BASE_URL="http://127.0.0.1:${PORT}" @@ -17,10 +19,6 @@ TMPDIR="$(mktemp -d)" LOGFILE="$TMPDIR/recluse.log" trap 'kill "$PID" 2>/dev/null; wait "$PID" 2>/dev/null; rm -rf "$TMPDIR"' EXIT -# Build -echo "Building recluse..." -cargo build --release -p recluse - # Write minimal config cat > "$TMPDIR/recluse.toml" <<EOF appname = "smoke" @@ -49,7 +47,7 @@ mkdir -p "$TMPDIR/state" # Start recluse echo "Starting recluse on ${BASE_URL}..." echo "Server log: ${LOGFILE}" -cargo run --release -p recluse -- --config="$TMPDIR/recluse.toml" >"$LOGFILE" 2>&1 & +"$BIN" --config="$TMPDIR/recluse.toml" >"$LOGFILE" 2>&1 & PID=$! # Wait for index to load (log shows "index refreshed" for each backend) |
