Skip to content

Commit

Permalink
ci: pipelines overhaul and optimization (lambdaclass#1002)
Browse files Browse the repository at this point in the history
* ci: massive overhaul of QA pipelines

This is a big changeset aimed at increasing pipelines throughput so PRs
don't get stuck too long in the queue. The major changes are:
- Compilation of Cairo programs happen in separate jobs, one per
  benchmark, test, and proof mode categories. The results get saved to a
  cache.
- Compilation of release binary happens in a separate job.
- A new smoke test that build-tests all configurations has its own job
  too.
- Linters (`clippy` and `cargo fmt`) run in a separate job.
- Unit tests run in parallel for configurations with `std`, without it
  and for `wasm32`.
- `std` and `no_std` tests also store their coverage results in a cache
  for later use.
- Execution of reference runs with `cairo-lang` happens in different
  jobs, one with and one without proof mode.
- Execution of the same for the release binary have their own job each.
- Comparison of results happen in a different job as well.
- Coverage gets uploaded from a different job, this is mainly aimed at
  covering (heh) for Codecov temporary failures.
- The toolchain is bumped to 1.69.0 mostly so we can use sparse indexes
  when fetching dependencies.

Minor fixes:
- The `rust-toolchain` file got deleted. It caused confusing errors and
  extra work in the pipelines due to conflicting versions, and wasn't
  really adding anything of value.
- Many `clippy` and `actionlint` warnings got fixed. Most notoriously,
  some deprecated methods for `Felt252` got undeprecated: we're not
  working in their replacement anytime soon, so let's just not annoy
  ourselves for no gain.

* Fix timestamps
  • Loading branch information
Oppen authored and kariy committed Jun 23, 2023
1 parent 1b7903b commit 889e02a
Show file tree
Hide file tree
Showing 10 changed files with 355 additions and 82 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
run: touch target/doc/.nojekyll
- name: Set short sha output
id: short_sha
run: echo "::set-output name=sha::$(git rev-parse --short HEAD)"
run: echo ":name=sha::$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Checkout gh-pages
uses: actions/checkout@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hyperfine.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
uses: actions/cache@v3
id: cache
with:
path: ${{ matrix.branch }}_programs/*.json
path: ${{ matrix.branch }}_programs/*.json
key: benchmarks-${{ matrix.branch }}-${{ hashFiles( 'cairo_programs/benchmarks/*.cairo' ) }}
restore-keys: benchmarks-${{ matrix.branch }}-

Expand Down
Loading

0 comments on commit 889e02a

Please sign in to comment.