name: Build Nomos Binaries on: workflow_dispatch: env: CARGO_TERM_COLOR: always jobs: build_nomos_binaries: strategy: matrix: include: - name: linux runs-on: ubuntu-latest runs-on: ${{ matrix.runs-on }} env: NOMOS_CIRCUITS: ${{ github.workspace }}/.tmp/nomos-circuits CARGO_INCREMENTAL: 0 CARGO_PROFILE_DEV_DEBUG: 0 RUSTFLAGS: -C debuginfo=0 --cfg feature="pol-dev-mode" CARGO_TARGET_DIR: ${{ github.workspace }}/.tmp/nomos-target steps: - uses: actions/checkout@v4 - name: Load versions run: | set -euo pipefail if [ ! -f versions.env ]; then echo "versions.env missing; populate VERSION, NOMOS_NODE_REV, NOMOS_BUNDLE_VERSION" >&2 exit 1 fi set -a . versions.env set +a # $GITHUB_ENV does not accept comments/blank lines; keep only KEY=VALUE exports. grep -E '^[A-Za-z_][A-Za-z0-9_]*=' versions.env >> "$GITHUB_ENV" : "${VERSION:?Missing VERSION}" : "${NOMOS_NODE_REV:?Missing NOMOS_NODE_REV}" : "${NOMOS_BUNDLE_VERSION:?Missing NOMOS_BUNDLE_VERSION}" - name: Install system dependencies (Linux) if: runner.os == 'Linux' run: | set -euo pipefail sudo apt-get update sudo apt-get install -y clang llvm-dev libclang-dev pkg-config cmake libssl-dev rsync libgmp10 libgmp-dev libgomp1 nasm - name: Install nomos circuits run: | ./scripts/setup/setup-nomos-circuits.sh "${VERSION}" "$NOMOS_CIRCUITS" echo "NOMOS_CIRCUITS=$NOMOS_CIRCUITS" >> "$GITHUB_ENV" - name: Add top-level KZG params file run: | curl -fsSL "https://raw.githubusercontent.com/logos-co/nomos-node/${NOMOS_NODE_REV}/tests/kzgrs/kzgrs_test_params" \ -o "${NOMOS_CIRCUITS}/kzgrs_test_params" - uses: dtolnay/rust-toolchain@master with: toolchain: nightly-2025-09-14 - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ runner.os }}-cargo- - name: Build nomos binaries bundle run: | chmod +x scripts/build/build-bundle.sh DEST=".tmp/nomos-binaries-linux-${VERSION}.tar.gz" scripts/build/build-bundle.sh --platform linux --output "$DEST" echo "NOMOS_BINARIES_TAR=$DEST" >> "$GITHUB_ENV" - name: Save nomos binaries cache uses: actions/cache@v4 with: path: ${{ github.workspace }}/.tmp/nomos-binaries-linux-${{ env.VERSION }}.tar.gz key: ${{ runner.os }}-nomos-binaries-${{ env.VERSION }}-${{ env.NOMOS_BUNDLE_VERSION }} - uses: actions/upload-artifact@v4 with: name: nomos-binaries-${{ runner.os }}-${{ env.VERSION }}-${{ env.NOMOS_BUNDLE_VERSION }} path: .tmp/nomos-binaries-linux-${{ env.VERSION }}.tar.gz