refactor(infra): clean up scripts folder #3278
Workflow file for this run
This file contains 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-Flow | |
on: | |
push: | |
branches: | |
- main | |
- main-v[0-9].** | |
tags: | |
- v[0-9].** | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- auto_merge_enabled | |
- edited | |
jobs: | |
commitlint: | |
runs-on: starkware-ubuntu-latest-small | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install commitlint | |
run: npm install --global @commitlint/cli @commitlint/config-conventional | |
- name: Validate PR commits with commitlint | |
if: github.event_name == 'pull_request' && !(contains(github.event.pull_request.title, 'merge-main') || contains(github.event.pull_request.title, 'merge main')) | |
env: | |
BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
HEAD_SHA: ${{ github.event.pull_request.head.sha }} | |
run: commitlint --from "$BASE_SHA" --to "$HEAD_SHA" --verbose | |
- name: Validate PR title with commitlint | |
if: github.event_name != 'merge_group' && github.event_name != 'push' && !(contains(github.event.pull_request.title, 'merge-main') || contains(github.event.pull_request.title, 'merge main')) | |
env: | |
TITLE: ${{ github.event.pull_request.title }} | |
run: echo "$TITLE" | commitlint --verbose | |
format: | |
runs-on: starkware-ubuntu-20-04-medium | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master # TODO(Nimrod, 15/8/2024): Use stable toolchain. | |
with: | |
components: rustfmt | |
toolchain: nightly-2024-04-29 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
prefix-key: "v0-rust-ubuntu-20.04" | |
- run: scripts/rust_fmt.sh --check | |
clippy: | |
runs-on: starkware-ubuntu-20-04-medium | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Noelware/setup-protoc@1.1.0 | |
- uses: ./.github/actions/install_rust | |
with: | |
components: clippy | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
prefix-key: "v0-rust-ubuntu-20.04" | |
# 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: ${{ steps.setup-pypy.outputs.pythonLocation }}/bin | |
run: echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}" >> $GITHUB_ENV | |
- run: scripts/clippy.sh | |
doc: | |
runs-on: starkware-ubuntu-latest-small | |
env: | |
RUSTDOCFLAGS: "-D warnings" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/install_rust | |
- uses: Swatinem/rust-cache@v2 | |
- uses: Noelware/setup-protoc@1.1.0 | |
with: | |
version: ${{env.PROTOC_VERSION}} | |
- run: cargo doc --workspace -r --document-private-items --no-deps | |
run-tests: | |
runs-on: starkware-ubuntu-20-04-medium | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Fetch the entire history. | |
fetch-depth: 0 | |
- uses: ./.github/actions/install_rust | |
- uses: Noelware/setup-protoc@1.1.0 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
prefix-key: "v0-rust-ubuntu-20.04" | |
# 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 | |
- name: "Run tests pull request" | |
if: github.event_name == 'pull_request' | |
run: | | |
python3 -m venv ci | |
ci/bin/pip install -r scripts/requirements.txt | |
ci/bin/python scripts/run_tests.py --changes_only --commit_id ${{ github.event.pull_request.base.sha }} | |
ci/bin/python scripts/run_tests.py --changes_only --concurrency --commit_id ${{ github.event.pull_request.base.sha }} | |
env: | |
SEED: 0 | |
- name: "Run tests on push" | |
if: github.event_name == 'push' | |
# TODO: Better support for running tests on push. | |
run: | | |
python3 -m venv ci | |
ci/bin/pip install -r scripts/requirements.txt | |
ci/bin/python scripts/run_tests.py | |
ci/bin/python scripts/run_tests.py --concurrency | |
env: | |
SEED: 0 | |
taplo: | |
runs-on: starkware-ubuntu-latest-small | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/install_rust | |
- uses: Swatinem/rust-cache@v2 | |
- uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: taplo-cli | |
version: '0.9.0' | |
locked: true | |
- run: scripts/taplo.sh | |
machete: | |
runs-on: starkware-ubuntu-latest-small | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run Machete (detect unused dependencies) | |
uses: bnjbvr/cargo-machete@main | |
check: | |
runs-on: starkware-ubuntu-latest-small | |
env: | |
RUSTDOCFLAGS: "-D warnings" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/install_rust | |
- uses: Swatinem/rust-cache@v2 | |
- uses: Noelware/setup-protoc@1.1.0 | |
with: | |
version: ${{env.PROTOC_VERSION}} | |
- run: cargo check --workspace -r --all-features | |
merge-gatekeeper: | |
runs-on: starkware-ubuntu-latest-small | |
# Restrict permissions of the GITHUB_TOKEN. | |
# Docs: https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs | |
permissions: | |
checks: read | |
statuses: read | |
steps: | |
- name: Run Merge Gatekeeper on pull request | |
if: github.event_name == 'pull_request' | |
uses: upsidr/merge-gatekeeper@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
timeout: 1200 | |
ignored: "code-review/reviewable" | |
- name: Run Merge Gatekeeper on Merge Queue || push | |
if: github.event_name == 'merge_group' || github.event_name == 'push' | |
uses: upsidr/merge-gatekeeper@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
ref: ${{github.ref}} | |
timeout: 1200 | |
ignored: "code-review/reviewable" |