scripts/ci-prepare-install-payload.sh
Rama main · réplica de lectura del repositorio original.
#!/usr/bin/env bash
# Build the --bin-dir / --dashboard-dir payload used by CI installer jobs.
set -euo pipefail
root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
cd "$root"
(
if [[ ${FIRECRAB_QA_COVERAGE:-0} == 1 ]]; then
# shellcheck source=/dev/null
source <(cargo llvm-cov show-env --sh)
# Keep counters after systemd stops/restarts the API with SIGTERM.
export RUSTFLAGS="${RUSTFLAGS:-} -C llvm-args=-runtime-counter-relocation"
cargo llvm-cov clean --workspace
fi
cargo build --release --locked -p firecrab-api -p firecrab-helper -p firecrab-cli
)
./scripts/build-ingress.sh target/release
./scripts/build-guest-console.sh target/release
npm ci --prefix firecrab-frontend
npm run build --prefix firecrab-frontend
# Prepare the same target-complete attribution payload installed from releases.
cargo fetch --locked
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
metadata_args=()
for target in \
x86_64-unknown-linux-musl \
x86_64-unknown-linux-gnu \
aarch64-unknown-linux-musl \
aarch64-unknown-linux-gnu; do
path="$tmp/cargo-metadata-${target}.json"
cargo metadata --format-version=1 --locked --filter-platform "$target" > "$path"
metadata_args+=(--cargo-metadata "$path")
done
python3 scripts/release_compliance.py \
"${metadata_args[@]}" \
--frontend-lock firecrab-frontend/package-lock.json \
--frontend-root firecrab-frontend \
--notices-out dist/compliance/THIRD_PARTY_NOTICES.txt \
--inventory-out dist/compliance/release-license-inventory.json \
--deny-incompatible