name: Nightly Build on: push: branches: - main jobs: build: runs-on: linux-amd64 env: CARGO_TARGET_DIR: /home/dguiducci/.cache/skald-ci/target steps: - uses: actions/checkout@v4 - name: Build native (linux/amd64) run: | RUSTFLAGS="-A warnings" cargo build --release --no-default-features RUSTFLAGS="-A warnings" cargo build --release --no-default-features -p skald-setup - name: Cross-compile (linux/arm64) env: CC_aarch64_unknown_linux_gnu: aarch64-linux-gnu-gcc AR_aarch64_unknown_linux_gnu: aarch64-linux-gnu-ar CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc run: | RUSTFLAGS="-A warnings" cargo build --release --no-default-features --target aarch64-unknown-linux-gnu RUSTFLAGS="-A warnings" cargo build --release --no-default-features -p skald-setup --target aarch64-unknown-linux-gnu - name: Package amd64 run: | cd "${GITHUB_WORKSPACE:-.}" ./ci/package.sh \ --version nightly \ --os linux \ --arch amd64 \ --target-dir /home/dguiducci/.cache/skald-ci/target/release \ --output dist/ - name: Package arm64 run: | cd "${GITHUB_WORKSPACE:-.}" ./ci/package.sh \ --version nightly \ --os linux \ --arch arm64 \ --target-dir /home/dguiducci/.cache/skald-ci/target/aarch64-unknown-linux-gnu/release \ --output dist/ - name: Deploy to builds.skaldagent.net run: | cd "${GITHUB_WORKSPACE:-.}" DEST=/var/www/builds.skaldagent.net/nightly mkdir -p "$DEST" # Nightly reuses a fixed filename, so publish atomically: copy to a # temp name on the same filesystem, then rename over the target. A # concurrent download never sees a half-written tarball. for f in dist/*.tar.gz; do name="$(basename "$f")" cp "$f" "$DEST/.$name.tmp" mv -f "$DEST/.$name.tmp" "$DEST/$name" done echo "[nightly] Deployed:" ls -lh "$DEST/"