deps(foundry-rs/foundry-toolchain): update foundry-rs/foundry-toolchain to v1.9.0 #710
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: Playground operation check | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| # Run this job once per day | |
| - cron: "0 0 * * *" | |
| pull_request: | |
| paths: | |
| - "playground/**" | |
| - ".github/workflows/playground-check.yaml" | |
| jobs: | |
| playground-check: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compose-file: | |
| - docker-compose.fork.yml | |
| - docker-compose.non-interactive.yml | |
| runs-on: ubuntu-latest | |
| # Healthy runs finish well under this (~22 min for the fork variant). If the job | |
| # is taking close to this cap, it's likely going to fail, in which case it's | |
| # better to fail fast instead of hanging. | |
| timeout-minutes: 60 | |
| env: | |
| FORK_URL_MAINNET: ${{ secrets.FORK_URL_MAINNET }} | |
| steps: | |
| - name: Free Disk Space (Ubuntu) | |
| uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 | |
| with: | |
| tool-cache: false | |
| android: true | |
| dotnet: true | |
| haskell: true | |
| large-packages: false | |
| docker-images: false | |
| swap-storage: false | |
| - name: Checkout code | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Install dependency | |
| run: sudo apt-get -qq update && sudo apt-get -y -q install curl jq | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@b00af27efadbc7b4ca8b82abbd903b17cc874d2a # v1.9.0 | |
| - name: Setup environment | |
| run: | | |
| cp playground/.env.example playground/.env | |
| sed -i -e 's/ETH_RPC_URL=.*/ETH_RPC_URL=$FORK_URL_MAINNET/g' playground/.env | |
| cat playground/.env | |
| - name: Start docker containers and wait for readiness | |
| id: containers | |
| working-directory: playground | |
| run: | | |
| # firstly start explorer container to workaround yarn cache problem | |
| docker compose -f ${{ matrix.compose-file }} up -d explorer | |
| # --wait blocks on the healthchecks before the test runs. Fork builds | |
| # the services in-container (~20 min), so the timeout matches start_period. | |
| docker compose -f ${{ matrix.compose-file }} up -d --wait --wait-timeout 2700 | |
| - name: Execute validation script | |
| id: test_script | |
| working-directory: playground | |
| run: ./test_playground.sh | |
| - name: Collect docker logs on failure | |
| if: failure() | |
| uses: jwalton/gh-docker-logs@2741064ab9d7af54b0b1ffb6076cf64c16f0220e # v2.2.2 | |
| with: | |
| dest: './logs' | |
| - name: Collect playground-chain-1 container health logs on failure | |
| if: failure() | |
| run: docker inspect --format='{{json .State.Health}}' playground-chain-1 > ./logs/playground-chain-1-health-log.json | |
| - name: Tar logs | |
| if: failure() | |
| run: tar cvzf ./logs.tgz ./logs | |
| - name: Upload logs to GitHub | |
| if: failure() | |
| id: artifact-upload-step | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: logs-${{ matrix.compose-file }}.tgz | |
| path: ./logs.tgz | |
| - name: Slack notification on failure | |
| if: failure() | |
| id: slack | |
| uses: slackapi/slack-github-action@45a88b9581bfab2566dc881e2cd66d334e621e2c # v3.0.3 | |
| with: | |
| webhook: ${{ secrets.SLACK_PLAYGROUND_CI_WEBHOOK_URL }} | |
| webhook-type: webhook-trigger | |
| payload: | | |
| { | |
| "channel_id": "C037PB929ME", | |
| "job_link":"${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}", | |
| "actor":"${{ github.actor }}", | |
| "event_name":"${{ github.event_name }}", | |
| "head_ref":"${{ github.head_ref }}", | |
| "step_containers":"${{ steps.containers.conclusion }}", | |
| "step_test_script":"${{ steps.test_script.conclusion }}", | |
| "log_artifcat":"${{ steps.artifact-upload-step.outputs.artifact-url }}" | |
| } |