ci passed
push
Branch:
refs/heads/ci/calver-release-publishing
fedf3c8
Started: Apr 10, 2026 at 05:37 UTC
Completed: Apr 10, 2026 at 05:49 UTC
Duration: 11m 56s
Pipeline validated with warnings
- step 'check': 'cache' is accepted but not yet implemented
- step 'test': 'cache' is accepted but not yet implemented
- step 'coverage': 'cache' is accepted but not yet implemented
- step 'clippy': 'cache' is accepted but not yet implemented
- step 'build': 'cache' is accepted but not yet implemented
- step 'build-runner': 'cache' is accepted but not yet implemented
Jobs
Stage 0
Stage 1
passed
test
exit: 0
1m 2s
on carl
(linux/arm64)
cargo test 2>&1
depends on
check
passed
coverage
exit: 0
6m 16s
on carl
(linux/arm64)
cargo install cargo-tarpaulin --version 0.32.7 2>&1
cargo tarpaulin --out lcov --output-dir coverage/ 2>&1
depends on
check
passed
clippy
exit: 0
1m 3s
on carl
(linux/arm64)
rustup component add clippy
cargo clippy --all-targets -- -D warnings 2>&1
depends on
check
Stage 2
passed
build
exit: 0
56s
on carl
(linux/arm64)
cargo build --release 2>&1
depends on
test
clippy
fmt
passed
build-runner
exit: 0
2m 3s
on carl
(linux/arm64)
set -e
apt-get update && apt-get install -y gcc-x86-64-linux-gnu jq 2>&1
# Build arm64 natively (CI runner is aarch64)
echo "==> Building arm64 binary (native)..."
cargo build --release 2>&1
# Cross-compile amd64
echo "==> Cross-compiling amd64 binary..."
rustup target add x86_64-unknown-linux-gnu 2>&1
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-linux-gnu-gcc \
cargo build --release --target x86_64-unknown-linux-gnu 2>&1
# Stage for CI artifact upload (unversioned names)
mkdir -p runner-dist
cp target/release/anvil runner-dist/anvil_runner_linux_arm64
cp target/x86_64-unknown-linux-gnu/release/anvil runner-dist/anvil_runner_linux_amd64
# On main branch: compute CalVer version, publish release, upload assets.
# ANVIL_SERVER_URL is injected by CI. ANVIL_TOKEN must be set as a CI secret.
if [ "$ANVIL_BRANCH" = "main" ] || [ "$ANVIL_BRANCH" = "refs/heads/main" ]; then
if [ -z "${ANVIL_TOKEN:-}" ]; then
echo "ERROR: ANVIL_TOKEN secret not set. Run: anvil ci set-secret ANVIL_TOKEN <pat>"
exit 1
fi
export ANVIL_CLI="$PWD/target/release/anvil"
VERSION=$(bash ci/release.sh)
echo "==> Publishing release $VERSION"
cp target/release/anvil "runner-dist/anvil_runner_linux_arm64_${VERSION}"
cp target/x86_64-unknown-linux-gnu/release/anvil "runner-dist/anvil_runner_linux_amd64_${VERSION}"
"$ANVIL_CLI" release create \
--tag "$VERSION" \
--title "anvil-cli $VERSION" \
--body "Runner binaries for linux/amd64 and linux/arm64." \
--repo fangorn/anvil-cli
"$ANVIL_CLI" release upload "$VERSION" \
"runner-dist/anvil_runner_linux_arm64_${VERSION}" \
--repo fangorn/anvil-cli
"$ANVIL_CLI" release upload "$VERSION" \
"runner-dist/anvil_runner_linux_amd64_${VERSION}" \
--repo fangorn/anvil-cli
echo "==> Published release $VERSION"
fi
depends on
test
clippy
fmt