Skip to content

Commit

Permalink
dev: use native in ci (#992)
Browse files Browse the repository at this point in the history
* dev: use native in ci

* remove outdated gas reports

* fix fmt

* fix runtime location

* avoid clearing the ssj checkout

* use correct working dir

* update stack size when running rust ef-tests

* update workflows

* simplify workflows by avoiding re-building runtimes

* rework workflow structure
  • Loading branch information
enitrat committed Nov 21, 2024
1 parent cb23ef4 commit c2e4ccb
Show file tree
Hide file tree
Showing 7 changed files with 86 additions and 192 deletions.
32 changes: 32 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Reusable Build Workflow

on:
workflow_call:
inputs:
artifact-name:
required: true
type: string

permissions: read-all

jobs:
build:
runs-on: ubuntu-latest
env:
CI_COMMIT_MESSAGE: CI Formatting Auto Commit
CI_COMMIT_AUTHOR: ${{ github.event.repository.name }} CI
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Scarb
uses: software-mansion/setup-scarb@v1

- name: Build contracts
run: scarb build -p contracts

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ inputs.artifact-name }}
path: target/dev
116 changes: 11 additions & 105 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,118 +16,24 @@ permissions: read-all

jobs:
build:
runs-on: ubuntu-latest
env:
CI_COMMIT_MESSAGE: CI Formatting Auto Commit
CI_COMMIT_AUTHOR: ${{ github.event.repository.name }} CI
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Scarb
uses: software-mansion/setup-scarb@v1

- name: Build contracts
run: scarb build -p contracts

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: kakarot-ssj-build
path: target/dev
uses: ./.github/workflows/build.yml
with:
artifact-name: kakarot-ssj-build

tests-unit:
# trunk-ignore(actionlint/runner-label)
runs-on: ubuntu-latest-16-cores
steps:
- uses: actions/checkout@v3
- uses: foundry-rs/setup-snfoundry@v3
- uses: software-mansion/setup-scarb@v1
- run: scarb fmt --check
- run: scarb build
- run: scarb test
uses: ./.github/workflows/tests-unit.yml
with:
run-fmt-check: false

ef-tests:
# trunk-ignore(actionlint/runner-label)
runs-on: ubuntu-latest-32-cores
needs: build
steps:
- name: Checkout ef-tests
uses: actions/checkout@v4
with:
repository: kkrt-labs/ef-tests

- name: Checkout local skip file
uses: actions/checkout@v4
with:
sparse-checkout: |
blockchain-tests-skip.yml
sparse-checkout-cone-mode: false
path: skip-file

- name: Replace the skip files
run: mv skip-file/blockchain-tests-skip.yml blockchain-tests-skip.yml

- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"

- name: Setup
run: |
mkdir -p build/common
make setup setup-kakarot-v0
- name: Install nextest
uses: taiki-e/install-action@nextest

- name: Download Kakarot-SSJ build artifacts in v1
uses: actions/download-artifact@v3
with:
name: kakarot-ssj-build
path: ./build/v1

- name: Move Cairo1Helpers
run:
mv build/v1/contracts_Cairo1Helpers.compiled_contract_class.json
build/common/cairo1_helpers.json

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.10.14

- name: Run tests
run: |
set -o pipefail
make ef-test-v1 | tee data.txt
set +o pipefail
- name: Retrieve ef-tests execution resources
run: python scripts/compute_resources.py
env:
KAKAROT_VERSION: v1

- name: Upload resources
uses: actions/upload-artifact@v3
with:
path: resources
name: resources

- name: Generate blockchain-tests-skip.yml file
if: github.event_name == 'workflow_dispatch'
run: make generate-skip-file

- name: Upload skip file
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v3
with:
path: blockchain-tests-skip.yml
name: blockchain-tests-skip
uses: ./.github/workflows/ef-tests.yml
needs: [build]
with:
artifact-name: kakarot-ssj-build

resources:
runs-on: ubuntu-latest
needs: ef-tests
needs: [ef-tests]
steps:
- uses: actions/checkout@v4

Expand Down
43 changes: 0 additions & 43 deletions .github/workflows/gas_reports.yml

This file was deleted.

34 changes: 0 additions & 34 deletions .github/workflows/gas_snapshot.yml

This file was deleted.

25 changes: 15 additions & 10 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,18 @@ concurrency:
cancel-in-progress: true

jobs:
tests:
# trunk-ignore(actionlint/runner-label)
runs-on: ubuntu-latest-16-cores
steps:
- uses: actions/checkout@v3
- uses: foundry-rs/setup-snfoundry@v3
- uses: software-mansion/setup-scarb@v1
- run: scarb fmt --check
- run: scarb build
- run: scarb test
build:
uses: ./.github/workflows/build.yml
with:
artifact-name: kakarot-ssj-build

tests-unit:
uses: ./.github/workflows/tests-unit.yml
with:
run-fmt-check: true

ef-tests:
uses: ./.github/workflows/ef-tests.yml
needs: [build]
with:
artifact-name: kakarot-ssj-build
26 changes: 26 additions & 0 deletions .github/workflows/tests-unit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Reusable Unit Tests Workflow

on:
workflow_call:
inputs:
run-fmt-check:
type: boolean
default: false
required: false

permissions: read-all

jobs:
unit-tests:
runs-on: ubuntu-latest-16-cores # trunk-ignore(actionlint/runner-label)
steps:
- uses: actions/checkout@v4
- uses: foundry-rs/setup-snfoundry@v3
- uses: software-mansion/setup-scarb@v1

- name: Run format check
if: inputs.run-fmt-check
run: scarb fmt --check

- name: Run tests
run: scarb test
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ target
node_modules/
*.snfoundry_cache
cache/

scripts/libcairo_native_runtime.a

0 comments on commit c2e4ccb

Please sign in to comment.