Update cargo lock #25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build apps and run tests | |
| on: | |
| push: | |
| jobs: | |
| prepare_env: | |
| runs-on: ubuntu-latest | |
| env: | |
| # Set the Branch/Ref of the github repositories to be used for building the image | |
| ROME_TESTS_REF_NAME: "main" # If updating this, also update the uses in the job call-reusable-workflow-tests | |
| ROME_SDK_REF_NAME: "main" | |
| ROME_EVM_REF_NAME: "main" | |
| ROME_APPS_REF_NAME: ${{github.ref_name}} # If updating this, also update the uses in the job reusable-wf-build at bottom of this file | |
| ROME_RELAYER_REF_NAME: main | |
| # Set the versions of the various images to run tests against | |
| EVM_VERSION: "main" | |
| TESTS_VERSION: "main" | |
| GETH_VERSION: "main" | |
| UNISWAP_VERSION: "latest" | |
| OPENZEPPELIN_VERSION: "latest" | |
| # Set the tests list to run | |
| TESTS_LIST: "evm,spl,state_comparison,uniswap_proxy,uniswap_op_geth" | |
| outputs: | |
| docker_image_tags: ${{ steps.prepare_docker_image_tags.outputs.docker_image_tags }} | |
| tests_list: ${{ steps.prepare_tests_list.outputs.tests_list }} | |
| rome_tests_ref_name: ${{ steps.set_rome_tests_ref.outputs.rome_tests_ref_name }} | |
| rome_evm_ref_name: ${{ steps.set_rome_tests_ref.outputs.rome_evm_ref_name }} | |
| rome_sdk_ref_name: ${{ steps.set_rome_tests_ref.outputs.rome_sdk_ref_name }} | |
| rome_apps_ref_name: ${{ steps.set_rome_tests_ref.outputs.rome_apps_ref_name }} | |
| rome_relayer_ref_name: ${{ steps.set_rome_tests_ref.outputs.rome_relayer_ref_name }} | |
| steps: | |
| - name: 'Prepare Docker Image Tags Input' | |
| id: prepare_docker_image_tags | |
| run: | | |
| # Use environment variables if available, otherwise default to 'latest' | |
| evm_ver="${{ env.EVM_VERSION || 'latest' }}" | |
| apps_ver="${{ env.ROME_APPS_REF_NAME || 'latest' }}" | |
| geth_ver="${{ env.GETH_VERSION || 'latest' }}" | |
| tests_ver="${{ env.TESTS_VERSION || 'latest' }}" | |
| uniswap_ver="${{ env.UNISWAP_VERSION || 'latest' }}" | |
| openzeppelin_ver="${{ env.OPENZEPPELIN_VERSION || 'latest' }}" | |
| # Create JSON object for docker_image_tags using environment variables | |
| docker_image_tags=$(echo "{\"evm\": \"$evm_ver\", \"apps\": \"$apps_ver\", \"geth\": \"$geth_ver\", \"tests\": \"$tests_ver\", \"uniswap\": \"$uniswap_ver\", \"openzeppelin\": \"$openzeppelin_ver\"}") | |
| echo "Docker image tags: $docker_image_tags" | |
| echo "docker_image_tags=$docker_image_tags" >> $GITHUB_OUTPUT | |
| - name: 'Prepare Tests List Input' | |
| id: prepare_tests_list | |
| run: | | |
| # Use TESTS_LIST environment variable or fallback to 'tests' | |
| tests_list="${{ env.TESTS_LIST || 'tests' }}" | |
| echo "Tests list: $tests_list" | |
| echo "tests_list=$tests_list" >> $GITHUB_OUTPUT | |
| - name: 'Set REF NAME' | |
| id: set_rome_tests_ref | |
| run: | | |
| echo "rome_tests_ref_name=${{ env.ROME_TESTS_REF_NAME || 'main' }}" >> $GITHUB_OUTPUT | |
| echo "rome_evm_ref_name=${{ env.ROME_EVM_REF_NAME || 'main' }}" >> $GITHUB_OUTPUT | |
| echo "rome_sdk_ref_name=${{ env.ROME_SDK_REF_NAME || 'main' }}" >> $GITHUB_OUTPUT | |
| echo "rome_apps_ref_name=${{ env.ROME_APPS_REF_NAME || 'main' }}" >> $GITHUB_OUTPUT | |
| echo "rome_relayer_ref_name=${{ env.ROME_RELAYER_REF_NAME || 'main' }}" >> $GITHUB_OUTPUT | |
| reusable-wf-build: | |
| uses: ./.github/workflows/reusable_wf_build.yml | |
| needs: prepare_env | |
| secrets: inherit | |
| with: | |
| rome_evm_ref_name: ${{ needs.prepare_env.outputs.rome_evm_ref_name }} | |
| rome_sdk_ref_name: ${{ needs.prepare_env.outputs.rome_sdk_ref_name }} | |
| rome_apps_ref_name: ${{ needs.prepare_env.outputs.rome_apps_ref_name }} | |
| rome_apps_tag: ${{ needs.prepare_env.outputs.rome_apps_ref_name }} | |
| rome_relayer_ref_name: ${{ needs.prepare_env.outputs.rome_relayer_ref_name }} | |
| reusable-wf-tests: | |
| uses: rome-labs/tests/.github/workflows/reusable_wf_tests.yml@main | |
| needs: [prepare_env, reusable-wf-build] | |
| secrets: inherit | |
| with: | |
| docker_image_tags: ${{ needs.prepare_env.outputs.docker_image_tags }} | |
| tests_list: ${{ needs.prepare_env.outputs.tests_list }} | |
| rome_tests_ref_name: ${{ needs.prepare_env.outputs.rome_tests_ref_name || 'main' }} | |
| update-latest-tag: | |
| runs-on: ubuntu-latest | |
| needs: [prepare_env, reusable-wf-tests, reusable-wf-build] | |
| if: ${{needs.prepare_env.outputs.rome_apps_ref_name == 'main'}} | |
| steps: | |
| - name: 'Login to Docker Hub' | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
| password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
| - name: 'Set latest tag' | |
| run: | | |
| docker pull romelabs/rome-apps:${{ needs.prepare_env.outputs.rome_apps_ref_name }} | |
| docker tag romelabs/rome-apps:${{ needs.prepare_env.outputs.rome_apps_ref_name }} romelabs/rome-apps:latest | |
| docker push romelabs/rome-apps:latest |