Skip to content

fix(rpc): TransactionTrace matches rpc v8 specs (#2600) #679

fix(rpc): TransactionTrace matches rpc v8 specs (#2600)

fix(rpc): TransactionTrace matches rpc v8 specs (#2600) #679

Workflow file for this run

name: CI/CD pipeline
env:
DOCKER_REGISTRY: nethermind.jfrog.io
REPO_DEV: nubia-oci-local-dev
REPO_STAGING: nubia-oci-local-staging
REPO_PROD: nubia-oci-local-prod
on:
push:
branches: [main]
tags: ["v*"]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-ci-cd
cancel-in-progress: true
permissions:
id-token: write
contents: write
jobs:
build:
uses: ./.github/workflows/build-image.yaml
secrets:
ARTIFACTORY_NUBIA_USERNAME: ${{ secrets.ARTIFACTORY_NUBIA_USERNAME }}
ARTIFACTORY_NUBIA_TOKEN_DEVELOPER: ${{ secrets.ARTIFACTORY_NUBIA_TOKEN_DEVELOPER }}
dev_deploy_test:
needs: [build]
uses: ./.github/workflows/dev-deploy-test.yaml
with:
docker_image_tag: ${{ needs.build.outputs.docker_image_tag }}
secrets:
ARTIFACTORY_NUBIA_USERNAME: ${{ secrets.ARTIFACTORY_NUBIA_USERNAME }}
ARTIFACTORY_NUBIA_TOKEN_DEVELOPER: ${{ secrets.ARTIFACTORY_NUBIA_TOKEN_DEVELOPER }}
DEV_SEPOLIA_URL: ${{ secrets.DEV_SEPOLIA_URL }}
TEST_ACCOUNT_ADDRESS: ${{ secrets.TEST_ACCOUNT_ADDRESS }}
TEST_ACCOUNT_PRIVATE_KEY: ${{ secrets.TEST_ACCOUNT_PRIVATE_KEY }}
promote_to_staging:
needs: [build, dev_deploy_test]
runs-on: ubuntu-latest
environment:
name: Staging
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup oras cli
uses: oras-project/setup-oras@v1
- name: Login to registry
run: |
oras login ${{ env.DOCKER_REGISTRY }} -u ${{ secrets.ARTIFACTORY_NUBIA_USERNAME }} -p ${{ secrets.ARTIFACTORY_NUBIA_TOKEN_DEVELOPER }}
- name: Promote to Staging
run: |
OLD_TAG=${{ env.DOCKER_REGISTRY }}/${{ env.REPO_DEV }}/juno:${{ needs.build.outputs.docker_image_tag }}
NEW_TAG=${{ env.DOCKER_REGISTRY }}/${{ env.REPO_STAGING }}/juno:${{ needs.build.outputs.docker_image_tag }}
oras cp -r $OLD_TAG $NEW_TAG,latest
- name: Verify Deployment Version (Staging)
run: |
bash .github/workflow-scripts/verify_deployment.sh ${{ secrets.STAGING_SEPOLIA_URL }} ${{ needs.build.outputs.docker_image_tag }}
staging-starknet-rs-tests:
needs: [promote_to_staging]
uses: ./.github/workflows/starknet-rs-tests.yml
secrets:
STARKNET_RPC: ${{ secrets.STAGING_SEPOLIA_URL }}/v0_7
staging-starknet-js-tests:
needs: [promote_to_staging]
uses: ./.github/workflows/starknet-js-tests.yml
secrets:
TEST_RPC_URL: ${{ secrets.STAGING_SEPOLIA_URL }}/v0_7
TEST_ACCOUNT_ADDRESS: ${{ secrets.TEST_ACCOUNT_ADDRESS }}
TEST_ACCOUNT_PRIVATE_KEY: ${{ secrets.TEST_ACCOUNT_PRIVATE_KEY }}
staging-starknet-go-tests:
needs: [promote_to_staging]
uses: ./.github/workflows/starknet-go-tests.yml
secrets:
TEST_RPC_URL: ${{ secrets.STAGING_SEPOLIA_URL }}/v0_7
promote_to_production:
needs: [build, promote_to_staging]
runs-on: ubuntu-latest
environment:
name: Production
steps:
- name: Setup oras cli
uses: oras-project/setup-oras@v1
- name: Login to registry
run: |
oras login ${{ env.DOCKER_REGISTRY }} -u ${{ secrets.ARTIFACTORY_NUBIA_USERNAME }} -p ${{ secrets.ARTIFACTORY_NUBIA_TOKEN_DEVELOPER }}
- name: Promote to Production
run: |
OLD_TAG=${{ env.DOCKER_REGISTRY }}/${{ env.REPO_STAGING }}/juno:${{ needs.build.outputs.docker_image_tag }}
NEW_TAG=${{ env.DOCKER_REGISTRY }}/${{ env.REPO_PROD }}/juno:${{ needs.build.outputs.docker_image_tag }}
oras cp -r $OLD_TAG $NEW_TAG,latest
test_in_production:
needs: [promote_to_production]
runs-on: ubuntu-latest
environment:
name: ProductionTests # Artificial gate to enforce manual approval
steps:
- name: Starting production tests
run: |
echo "Tests in production will start shortly."
prod-starknet-rs-tests:
needs: [test_in_production]
uses: ./.github/workflows/starknet-rs-tests.yml
secrets:
STARKNET_RPC: ${{ secrets.PROD_SEPOLIA_URL }}/v0_7
prod-starknet-js-tests:
needs: [test_in_production]
uses: ./.github/workflows/starknet-js-tests.yml
secrets:
TEST_RPC_URL: ${{ secrets.PROD_SEPOLIA_URL }}/v0_7
TEST_ACCOUNT_ADDRESS: ${{ secrets.TEST_ACCOUNT_ADDRESS }}
TEST_ACCOUNT_PRIVATE_KEY: ${{ secrets.TEST_ACCOUNT_PRIVATE_KEY }}
prod-starknet-go-tests:
needs: [test_in_production]
uses: ./.github/workflows/starknet-go-tests.yml
secrets:
TEST_RPC_URL: ${{ secrets.PROD_SEPOLIA_URL }}/v0_7