Main-CI-Nightly #33
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: 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 |