Skip to content

Commit

Permalink
fix(ci): use dedicated rosetta config dir (#4473)
Browse files Browse the repository at this point in the history
* fix(ci): use dedicated rosetta config dir

* Add rosetta workflow and diff tag

* dprint

* validation

---------

Co-authored-by: Chloe Martin <[email protected]>
  • Loading branch information
kodemartin and DaughterOfMars authored Dec 13, 2024
1 parent a183192 commit 1dea4c0
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 35 deletions.
3 changes: 3 additions & 0 deletions .github/actions/diffs/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ runs:
- "examples/**"
- "iota_programmability/**"
- ".github/workflows/_move_tests.yml"
isRosetta:
- ".github/scripts/rosetta/**"
- "crates/iota-rosetta/**"
isExternalCrates:
- "external-crates/move/crates/**"
isReleaseNotesEligible:
Expand Down
8 changes: 6 additions & 2 deletions .github/scripts/rosetta/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ echo "Install binaries"
cargo install --locked --bin iota --path crates/iota
cargo install --locked --bin iota-rosetta --path crates/iota-rosetta

echo "create dedicated config dir for IOTA genesis"
CONFIG_DIR="~/.iota/rosetta_config"
mkdir -p $CONFIG_DIR

echo "run IOTA genesis"
iota genesis
iota genesis -f --working-dir $CONFIG_DIR

echo "generate rosetta configuration"
iota-rosetta generate-rosetta-cli-config --online-url http://127.0.0.1:9002 --offline-url http://127.0.0.1:9003

echo "install rosetta-cli"
curl -sSfL https://raw.githubusercontent.com/coinbase/rosetta-cli/master/scripts/install.sh | sh -s
curl -sSfL https://raw.githubusercontent.com/coinbase/rosetta-cli/master/scripts/install.sh | sh -s
55 changes: 55 additions & 0 deletions .github/workflows/_rosetta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Rosetta validation

on: workflow_call

concurrency:
group: rosetta-validation-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }}

env:
CARGO_TERM_COLOR: always
RUST_LOG: "error"
# Don't emit giant backtraces in the CI logs.
RUST_BACKTRACE: short
CARGO_INCREMENTAL: 0
# Allow more retries for network requests in cargo (downloading crates) and
# rustup (installing toolchains). This should help to reduce flaky CI failures
# from transient network timeouts or other issues.
CARGO_NET_RETRY: 10
RUSTUP_MAX_RETRIES: 10
# RUSTFLAGS: -D warnings
RUSTDOCFLAGS: -D warnings

jobs:
validation:
timeout-minutes: 45
runs-on: [self-hosted]
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1

- name: Setup environment
run: .github/scripts/rosetta/setup.sh
shell: bash

- name: Start local IOTA network
run: |
iota start --no-full-node &
shell: bash

- name: Start Rosetta servers
run: .github/scripts/rosetta/start_rosetta.sh
shell: bash

- name: Sleep for 20 seconds
run: sleep 20s
shell: bash

- name: Run check:construction test
run: |
./bin/rosetta-cli --configuration-file rosetta_cli.json check:construction
shell: bash

- name: Run check:data test
run: |
./bin/rosetta-cli --configuration-file rosetta_cli.json check:data
shell: bash
33 changes: 0 additions & 33 deletions .github/workflows/_rust_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,39 +159,6 @@ jobs:
eval ${command}
rosetta-validation:
timeout-minutes: 45
runs-on: [self-hosted]
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1

- name: Setup environment
run: .github/scripts/rosetta/setup.sh
shell: bash

- name: Start local IOTA network
run: |
iota start --no-full-node &
shell: bash

- name: Start Rosetta servers
run: .github/scripts/rosetta/start_rosetta.sh
shell: bash

- name: Sleep for 20 seconds
run: sleep 20s
shell: bash

- name: Run check:construction test
run: |
./bin/rosetta-cli --configuration-file rosetta_cli.json check:construction
shell: bash

- name: Run check:data test
run: |
./bin/rosetta-cli --configuration-file rosetta_cli.json check:data
shell: bash

graphql-rpc:
name: graphql-rpc
timeout-minutes: 45
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/hierarchy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ jobs:
outputs:
isRust: ${{ steps.diff.outputs.isRust }}
isMove: ${{ steps.diff.outputs.isMove }}
isRosetta: ${{ steps.diff.outputs.isRosetta }}
isDoc: ${{ steps.diff.outputs.isDoc }}
isReleaseNotesEligible: ${{ steps.diff.outputs.isReleaseNotesEligible }}
isExternalCrates: ${{ steps.diff.outputs.isExternalCrates }}
Expand Down Expand Up @@ -107,6 +108,17 @@ jobs:
with:
isRust: ${{ needs.diff.outputs.isRust == 'true' }}

rosetta:
needs:
- diff
- dprint-format
- license-check
- typos
if: |
!cancelled() && !failure() &&
(needs.diff.outputs.isRosetta == 'true' || needs.diff.outputs.isRust == 'true')
uses: ./.github/workflows/_rosetta.yml

e2e:
if: (!cancelled() && !failure() && (!github.event.pull_request.draft || github.ref_name == 'develop'))
needs:
Expand Down

0 comments on commit 1dea4c0

Please sign in to comment.