Skip to content

ci(release): added release CI to the project#3

Merged
Trantorian1 merged 86 commits intomainfrom
fix/madara
May 7, 2025
Merged

ci(release): added release CI to the project#3
Trantorian1 merged 86 commits intomainfrom
fix/madara

Conversation

@Trantorian1
Copy link
Contributor

@Trantorian1 Trantorian1 commented May 1, 2025

Pull Request type

  • Feature

What is the current behavior?

  • Project does not have a proper release CI. This makes it hard to re-use across projects.
  • Some tests are outdated compared to the latest version of RPCs and blockifier on Starknet mainnet.

What is the new behavior?

Tip

Most changes have been made under .github. Other changes are mostly related to cargo fmt.

  • Introduces a release pipeline to make it easy to use starknet-hive from outside the repo.
  • Nightly builds take place on each pull request and are tagged to the commit hash.
  • Release builds are triggered manually and retag the latest nightly to the current version in the root Cargo.toml.
  • Updated runner.dockerfile to have better caching and lower build times (x2 speedup on a cached build in CI).
  • Adds more QOL changes to the CI (better caching, conventional commits, feature checks...).
  • CI now uses a merge queue to run expensive jobs such as release and feature checks before merging.
  • Fixes some bugs in the tests related to versions changes in Starknet.
  • Enforced proper formatting.

Generated Packages

image

  • latest: latest stable release.
  • v[0-9]+(\\.[0-9])*(\\.[0-9])*: stable release version.
  • nightly: latest nightly release.
  • nightly-[a-f0-9]{8}: nightly release commit sha.

Note

The release pipeline has been implemented to support building any docker image for the project. Currently, it is only configured to build openrpc-testgen-runner but this can be easily updated.

Does this introduce a breaking change?

Yes. Many tests have had their gas fees changes. This means older node versions will no longer pass certain tests. It might be worth making these tests optional in the future.

Other information

To run these tests locally, use:

cargo run -p openrpc-testgen-runner --features openrpc -- \               
     --urls "http://127.0.0.1:9944" \                                                                  
     --paymaster-account-address "0x055be462e718c4166d656d11f89e341115b8bc82389c3762a10eade04fcb225d" \
     --paymaster-private-key "0x077e56c6dc32d40a67f6f7e6625c8dc5e570abe49c0a24e9202e4ae906abcc07" \    
     --udc-address "0x41a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf" \               
     --account-class-hash "0xe2eb8f5672af4e6a4e8a8f1b44989685e668489b0a25437733756c5a34a1d6" \         
     --suite open-rpc                                                                                  

and (from the madara repo)

rm - rf ../madara-db # THIS WILL DELETE THE DB
cargo run -p madara --release -- \
     --name madara \
     --devnet \
     --l1-sync-disabled \
     --devnet-unsafe \
     --base-path ../madara-db \
     --feeder-gateway-enable \
     --chain-config-override="eth_core_contract_address=0xc662c410C0ECf747543f5bA90660f6ABeBD9C8c4"

@Trantorian1 Trantorian1 enabled auto-merge May 1, 2025 11:57
@Trantorian1 Trantorian1 added this pull request to the merge queue May 1, 2025
@Trantorian1 Trantorian1 removed this pull request from the merge queue due to a manual request May 1, 2025
@Trantorian1 Trantorian1 enabled auto-merge May 1, 2025 12:08
@Trantorian1 Trantorian1 added this pull request to the merge queue May 1, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks May 1, 2025
github-merge-queue bot pushed a commit that referenced this pull request May 6, 2025
* style(fmt): applied madara cargo fmt

* ci

* fix(ci): invalid local worflow path

* fix(clippy)

* ci(version): added explicit dep versioning

* ci(env): env expose via action output

* dep(rust): updated rust version to 1.85

* ci(rust): added needed rust components

* ci(rust): moved rust setup to an action

* ci(rust): added cache for clippy and build steps

* fix(ci): invalid cargo hack command in build CI

* ci(hack): removed cargo hack

* ci(build): fixed compilation

* ci(merge): testing merge queue

* ci(tmp): getting feature check to run so I can add it to merge queue

* ci(cache): moved to `setup-rust-toolchain` for handling caching

* ci(merge): merge queue test

* ci(merge): invalid merge queue job name

* fix(ci)

* ci(merge): test merge queue

* ci(merge): test merge queue

* ci(merge): merge queue works

* ci(lint): added commit message lint

* fix(ci): commitlint

* fix(ci): commitlint

* fix(ci): commitlint

* fix(ci): commitlint

* fix(ci): commitlint

* fix(ci): commitlint

* feat(docker): updated openrpc-testgen-runner dockerfile

* ci(docker): testing nightly release action

* ci(docker): fixed permissions

* ci(docker): fixed tag

* ci(docker): fix permissions

* ci(docker): fix tag

* ci(docker): fix tag

* ci(docker): fix tag

* ci(docker): tag extraction works

* ci(docker): fix ghcr tag

* ci(docker): attestation

* ci(docker): attestation

* ci(docker): nightly release works

* ci(queue): testing merge queue

* ci(commit): fix commitlint

* ci(queue): merge queue works

* ci(lint): added commitlint to merge  queue

* fix(gas): updated l1 gas prices

* ci(release): testing release pipeline

* fix(ci): invalid workflow file name

* fix(ci): unclosed sequence

* style(prettier)

* ci(release): testing release pipeline

* ci(release): testing release pipeline

* ci(release): testing release pipeline

* ci(release): testing release pipeline

* fix(ci): invalid container url

* fix(ci): missing tag names

* fix(ci): missing tag names

* fix(ci): missing tag names

* fix(ci): missing tag names

* ci(docker): better caching

* ci(merge): test merge queue

* ci(release): updated release action

* ci(merge): test merge queue

* fix(ci): missing pull request name in merge queue

* fix(ci): removed commitlint from merge queue

* fix(merge): missing registry info

* fix(docker): docker cache needs buildx

* fix(docker): invalid context

* fix(docker): issue with `.dockerignore`

* fix(docker): invalid context

* fix(docker): invalid context

* fix(docker): invalid context

* ci(merge): test merge queue

* ci(merge): test merge queue
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks May 6, 2025
@Trantorian1 Trantorian1 added this pull request to the merge queue May 6, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks May 6, 2025
@Trantorian1 Trantorian1 added this pull request to the merge queue May 6, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks May 6, 2025
@Trantorian1 Trantorian1 enabled auto-merge May 6, 2025 19:29
@Trantorian1 Trantorian1 added this pull request to the merge queue May 6, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks May 6, 2025
@Trantorian1 Trantorian1 closed this May 6, 2025
@Trantorian1 Trantorian1 reopened this May 6, 2025
@Trantorian1 Trantorian1 closed this May 6, 2025
@Trantorian1 Trantorian1 reopened this May 6, 2025
@Trantorian1 Trantorian1 changed the title ci(release): added proper release CI to the project ci(release): added release CI to the project May 7, 2025
@Trantorian1 Trantorian1 enabled auto-merge May 7, 2025 09:09
@Trantorian1 Trantorian1 added this pull request to the merge queue May 7, 2025
Merged via the queue into main with commit e9cf9be May 7, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants