aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolay Govorov <me@govorov.online>2026-03-29 20:36:38 +0100
committerNikolay Govorov <me@govorov.online>2026-03-29 20:36:38 +0100
commit58a38308cd83909b67c217203d4bfa9b0b9bfb5d (patch)
tree1b6b5e3611b11f282ef707d510ff877cf1996207
parenta71422d71460185a0603daaeb3826229e084061b (diff)
downloadtar
tar.gz
tar.bz2
tar.lz
tar.xz
tar.zst
zip
Eliminates unnecessary rebuilds on CI
Diffstat
-rw-r--r--.github/workflows/build.yml19+13 −6
-rw-r--r--README.md2+1 −1
-rwxr-xr-xtests/smoke/run-local.sh10+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)