feat: succinct-1.85.0 #82
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | ||
| on: | ||
| workflow_call: | ||
| workflow_dispatch: | ||
| jobs: | ||
| # The job matrix for `calculate_matrix` is defined in src/ci/github-actions/jobs.yml. | ||
| # It calculates which jobs should be executed, based on the data of the ${{ github }} context. | ||
| # If you want to modify CI jobs, take a look at src/ci/github-actions/jobs.yml. | ||
| calculate_matrix: | ||
| name: Calculate job matrix | ||
| runs-on: ubuntu-24.04 | ||
| outputs: | ||
| jobs: ${{ steps.jobs.outputs.jobs }} | ||
| run_type: ${{ steps.jobs.outputs.run_type }} | ||
| steps: | ||
| - name: Checkout the source code | ||
| uses: actions/checkout@v4 | ||
| - name: Calculate the CI job matrix | ||
| env: | ||
| COMMIT_MESSAGE: ${{ github.event.head_commit.message }} | ||
| run: python3 src/ci/github-actions/calculate-job-matrix.py >> $GITHUB_OUTPUT | ||
| id: jobs | ||
| job: | ||
| name: ${{ matrix.name }} | ||
| needs: [ calculate_matrix ] | ||
| runs-on: "${{ matrix.os }}" | ||
| defaults: | ||
| run: | ||
| shell: ${{ contains(matrix.os, 'windows') && 'msys2 {0}' || 'bash' }} | ||
| timeout-minutes: 360 | ||
| env: | ||
| CI_JOB_NAME: ${{ matrix.image }} | ||
| CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | ||
| # commit of PR sha or commit sha. `GITHUB_SHA` is not accurate for PRs. | ||
| HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }} | ||
| DOCKER_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| SCCACHE_BUCKET: rust-lang-ci-sccache2 | ||
| CACHE_DOMAIN: ci-caches.rust-lang.org | ||
| continue-on-error: ${{ matrix.continue_on_error || false }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - os: macos-14 | ||
| triple: aarch64-apple-darwin | ||
| - os: macos-13 | ||
| triple: x86_64-apple-darwin | ||
| - os: buildjet-32vcpu-ubuntu-2004 | ||
| triple: x86_64-unknown-linux-gnu | ||
| runs-on: ${{ matrix.os }} | ||
| steps: | ||
| - name: Install Rust | ||
| uses: actions-rs/toolchain@v1 | ||
| with: | ||
| toolchain: stable | ||
| - uses: lukka/[email protected] | ||
| - name: Install Go | ||
| uses: actions/setup-go@v4 | ||
| with: | ||
| go-version: 1.21.4 | ||
| check-latest: true | ||
| # Free up disk space on Linux by removing preinstalled components that | ||
| # we do not need. We do this to enable some of the less resource | ||
| # intensive jobs to run on free runners, which however also have | ||
| # less disk space. | ||
| - name: free up disk space | ||
| uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be | ||
| if: matrix.free_disk | ||
| # Rust Log Analyzer can't currently detect the PR number of a GitHub | ||
| # Actions build on its own, so a hint in the log message is needed to | ||
| # point it in the right direction. | ||
| - name: configure the PR in which the error message will be posted | ||
| run: echo "[CI_PR_NUMBER=$num]" | ||
| env: | ||
| num: ${{ github.event.number }} | ||
| if: needs.calculate_matrix.outputs.run_type == 'pr' | ||
| - name: add extra environment variables | ||
| run: src/ci/scripts/setup-environment.sh | ||
| env: | ||
| # Since it's not possible to merge `${{ matrix.env }}` with the other | ||
| # variables in `job.<name>.env`, the variables defined in the matrix | ||
| # are passed to the `setup-environment.sh` script encoded in JSON, | ||
| # which then uses log commands to actually set them. | ||
| EXTRA_VARIABLES: ${{ toJson(matrix.env) }} | ||
| - name: ensure the channel matches the target branch | ||
| run: src/ci/scripts/verify-channel.sh | ||
| - name: collect CPU statistics | ||
| run: src/ci/scripts/collect-cpu-stats.sh | ||
| - name: show the current environment | ||
| run: src/ci/scripts/dump-environment.sh | ||
| - name: install awscli | ||
| run: src/ci/scripts/install-awscli.sh | ||
| - name: install sccache | ||
| run: src/ci/scripts/install-sccache.sh | ||
| - name: select Xcode | ||
| run: src/ci/scripts/select-xcode.sh | ||
| - name: install clang | ||
| run: src/ci/scripts/install-clang.sh | ||
| - name: install tidy | ||
| run: src/ci/scripts/install-tidy.sh | ||
| - name: install WIX | ||
| run: src/ci/scripts/install-wix.sh | ||
| - name: disable git crlf conversion | ||
| run: src/ci/scripts/disable-git-crlf-conversion.sh | ||
| - name: checkout submodules | ||
| run: src/ci/scripts/checkout-submodules.sh | ||
| - name: install MinGW | ||
| run: src/ci/scripts/install-mingw.sh | ||
| - name: install ninja | ||
| run: src/ci/scripts/install-ninja.sh | ||
| - name: enable ipv6 on Docker | ||
| run: src/ci/scripts/enable-docker-ipv6.sh | ||
| # Disable automatic line ending conversion (again). On Windows, when we're | ||
| # installing dependencies, something switches the git configuration directory or | ||
| # re-enables autocrlf. We've not tracked down the exact cause -- and there may | ||
| # be multiple -- but this should ensure submodules are checked out with the | ||
| # appropriate line endings. | ||
| - name: disable git crlf conversion | ||
| run: src/ci/scripts/disable-git-crlf-conversion.sh | ||
| - name: ensure line endings are correct | ||
| run: src/ci/scripts/verify-line-endings.sh | ||
| - name: ensure backported commits are in upstream branches | ||
| run: src/ci/scripts/verify-backported-commits.sh | ||
| - name: ensure the stable version number is correct | ||
| run: src/ci/scripts/verify-stable-version-number.sh | ||
| - name: run the build | ||
| # Redirect stderr to stdout to avoid reordering the two streams in the GHA logs. | ||
| run: src/ci/scripts/run-build-from-ci.sh 2>&1 | ||
| env: | ||
| AWS_ACCESS_KEY_ID: ${{ env.CACHES_AWS_ACCESS_KEY_ID }} | ||
| AWS_SECRET_ACCESS_KEY: ${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }} | ||
| - name: create github artifacts | ||
| run: src/ci/scripts/create-doc-artifacts.sh | ||
| - name: print disk usage | ||
| run: | | ||
| echo "disk usage:" | ||
| df -h | ||
| - name: upload artifacts to github | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| submodules: "recursive" | ||
| path: rust | ||
| fetch-depth: 0 | ||
| ref: ${{ github.ref }} | ||
| - name: Check out succinctlabs/sp1 | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| repository: succinctlabs/sp1 | ||
| ref: dev | ||
| path: sp1 | ||
| - name: upload job metrics to DataDog | ||
| if: needs.calculate_matrix.outputs.run_type != 'pr' | ||
| env: | ||
| DATADOG_SITE: datadoghq.com | ||
| DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }} | ||
| DD_GITHUB_JOB_NAME: ${{ matrix.name }} | ||
| run: | | ||
| cd src/ci | ||
| npm ci | ||
| python3 scripts/upload-build-metrics.py ../../build/cpu-usage.csv | ||
| # This job isused to tell bors the final status of the build, as there is no practical way to detect | ||
| # when a workflow is successful listening to webhooks only in our current bors implementation (homu). | ||
| outcome: | ||
| name: bors build finished | ||
| runs-on: ubuntu-24.04 | ||
| needs: [ calculate_matrix, job ] | ||
| # !cancelled() executes the job regardless of whether the previous jobs passed or failed | ||
| if: ${{ !cancelled() && contains(fromJSON('["auto", "try"]'), needs.calculate_matrix.outputs.run_type) }} | ||
| steps: | ||
| - name: Install Rust | ||
| uses: actions-rs/toolchain@v1 | ||
| with: | ||
| toolchain: stable | ||
| - uses: lukka/[email protected] | ||
| - name: Install Go | ||
| uses: actions/setup-go@v4 | ||
| with: | ||
| go-version: 1.21.4 | ||
| check-latest: true | ||
| - name: Show rust version | ||
| run: | | ||
| cargo version | ||
| rustup toolchain list | ||
| - name: Check out succinctlabs/rust | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| submodules: "recursive" | ||
| path: rust | ||
| fetch-depth: 0 | ||
| ref: ${{ github.ref }} | ||
| - name: Check out succinctlabs/sp1 | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| repository: succinctlabs/sp1 | ||
| ref: dev | ||
| path: sp1 | ||
| - name: Build | ||
| run: | | ||
| cd sp1/crates/cli | ||
| GITHUB_ACTIONS=false SP1_BUILD_DIR=$GITHUB_WORKSPACE cargo run --bin cargo-prove -- prove build-toolchain | ||
| - name: Archive build output | ||
| uses: actions/upload-artifact@v3 | ||
| with: | ||
| name: rust-toolchain-aarch64-unknown-linux-gnu | ||
| path: sp1/crates/cli/rust-toolchain-aarch64-unknown-linux-gnu.tar.gz | ||