Skip to content

Main-CI-Nightly

Main-CI-Nightly #33

Workflow file for this run

name: Main-CI-Nightly
on:
schedule:
- cron: "0 0 * * *" # Runs at 00:00 UTC every day
workflow_dispatch:
env:
RUSTFLAGS: "-D warnings -C link-arg=-fuse-ld=lld"
jobs:
define_branches:
runs-on: starkware-ubuntu-24.04-small
outputs:
branches: ${{ steps.branches.outputs.branches }}
steps:
- name: Define branches for nightly run.
id: branches
run: echo 'branches=["main", "main-v0.14.0"]' >> "$GITHUB_OUTPUT"
codecov:
runs-on: starkware-ubuntu-24.04-large
needs: define_branches
strategy:
matrix:
branch: ${{ fromJson(needs.define_branches.outputs.branches) }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
- uses: ./.github/actions/bootstrap
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- run: npm install -g [email protected]
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
# Setup pypy and link to the location expected by .cargo/config.toml.
# Python + requirements are needed to compile the OS.
- uses: actions/setup-python@v5
id: setup-pypy
with:
python-version: "pypy3.9"
cache: 'pip'
- run: ln -s '${{ steps.setup-pypy.outputs.python-path }}' /usr/local/bin/pypy3.9
- env:
LD_LIBRARY_PATH: ${{ env.Python3_ROOT_DIR }}/bin
run: echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> $GITHUB_ENV
- run: pip install -r scripts/requirements.txt
- name: "Run codecov"
run: cargo llvm-cov --codecov --output-path codecov.json
env:
SEED: 0
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
feature_combos:
runs-on: starkware-ubuntu-24.04-large
needs: define_branches
strategy:
matrix:
branch: ${{ fromJson(needs.define_branches.outputs.branches) }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
# Setup pypy and link to the location expected by .cargo/config.toml.
- uses: actions/setup-python@v5
id: setup-pypy
with:
python-version: "pypy3.9"
cache: 'pip'
- run: ln -s '${{ steps.setup-pypy.outputs.python-path }}' /usr/local/bin/pypy3.9
- env:
LD_LIBRARY_PATH: ${{ steps.setup-pypy.outputs.pythonLocation }}/bin
run: echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> $GITHUB_ENV
- run: pip install -r scripts/requirements.txt
# Install rust components.
- uses: ./.github/actions/bootstrap
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
# Run feature combo test.
- name: "Run feature combo on all crates."
run: scripts/run_feature_combos_test.py
run-integration-tests:
runs-on: starkware-ubuntu-24.04-large
needs: define_branches
strategy:
matrix:
branch: ${{ fromJson(needs.define_branches.outputs.branches) }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
- uses: ./.github/actions/bootstrap
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
# Setup pypy and link to the location expected by .cargo/config.toml.
- uses: actions/setup-python@v5
id: setup-pypy
with:
python-version: "pypy3.9"
- run: ln -s '${{ steps.setup-pypy.outputs.python-path }}' /usr/local/bin/pypy3.9
- env:
LD_LIBRARY_PATH: ${{ env.Python3_ROOT_DIR }}/bin
run: echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> $GITHUB_ENV
- run: pip install -r scripts/requirements.txt
# TODO(Gilad): only one test needs this (base_layer_test.rs), once it migrates to
# anvil, remove.
- run: npm install -g [email protected]
- name: "Run integration tests pull request"
run: |
scripts/run_tests.py --command integration --is_nightly
env:
SEED: 0