12345on:6 workflow_call:78910jobs:1112 execution-marix:1314 name: Prepare execution matrix1516 runs-on: self-hosted-ci17 outputs:18 matrix: ${{ steps.create_matrix.outputs.matrix }}1920 steps:2122 - name: Clean Workspace23 uses: AutoModality/action-clean@v1.1.02425 26 - uses: actions/checkout@v327 with:28 ref: ${{ github.head_ref }} 2930 - name: Read .env file31 uses: xom9ikk/dotenv@v23233 - name: Create Execution matrix34 uses: CertainLach/create-matrix-action@v335 id: create_matrix36 with:37 matrix: |38 network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}}39 network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}}40 network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}}4142 forkless-update-data:43 needs: execution-marix44 45 runs-on: [self-hosted-ci,large]46 timeout-minutes: 138047 48 name: ${{ matrix.network }}-data49 strategy:50 matrix:51 include: ${{fromJson(needs.execution-marix.outputs.matrix)}}5253 continue-on-error: true 5455 steps:56 - name: Clean Workspace57 uses: AutoModality/action-clean@v1.1.05859 60 - uses: actions/checkout@v361 with:62 ref: ${{ github.head_ref }} 6364 - name: Read .env file65 uses: xom9ikk/dotenv@v26667 - name: Generate ENV related extend file for docker-compose68 uses: cuchi/jinja2-action@v1.2.069 with:70 template: .docker/docker-compose.tmp-forkless-data.j271 output_file: .docker/docker-compose-forkless-data.${{ matrix.network }}.yml72 variables: |73 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git74 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}75 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}76 POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }} 77 POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}78 MAINNET_TAG=${{ matrix.mainnet_tag }}79 MAINNET_BRANCH=${{ matrix.mainnet_branch }}80 NETWORK=${{ matrix.network }}81 BRANCH=${{ github.head_ref }}82 REPLICA_FROM=${{ matrix.replica_from_address }}8384 - name: Show build configuration85 run: cat .docker/docker-compose-forkless-data.${{ matrix.network }}.yml8687 - name: Generate launch-config-forkless-data.json88 uses: cuchi/jinja2-action@v1.2.089 with:90 template: .docker/forkless-config/launch-config-forkless-data.j291 output_file: .docker/launch-config-forkless-data.json92 variables: |93 NETWORK=${{ matrix.network }}94 REPLICA_FROM=${{ matrix.replica_from_address }}9596 - name: Show launch-config-forkless configuration97 run: cat .docker/launch-config-forkless-data.json9899 - name: Build the stack100 run: docker-compose -f ".docker/docker-compose-forkless-data.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300101102 - name: Check if docker logs consist logs related to Runtime Upgrade testing.103 if: success()104 run: |105 counter=160106 function check_container_status {107 docker inspect -f {{.State.Running}} node-parachain108 }109 function do_docker_logs {110 docker logs --details node-parachain 2>&1111 }112 function is_started {113 if [ "$(check_container_status)" == "true" ]; then114 echo "Container: node-parachain RUNNING";115 echo "Check Docker logs"116 DOCKER_LOGS=$(do_docker_logs)117 if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then118 echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"119 return 0120 elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then121 echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"122 return 1123 else124 echo "Message not found in logs output, repeating..."125 return 1126 fi127 else128 echo "Container node-parachain not RUNNING"129 echo "Halting all future checks"130 exit 1131 fi132 exit 0133 }134 while ! is_started; do135 echo "Waiting for special message in log files "136 sleep 30s137 counter=$(( $counter - 1 ))138 echo "Counter: $counter"139 if [ "$counter" -gt "0" ]; then140 continue141 else142 break143 fi144 done145 echo "Halting script"146 exit 0147 shell: bash148149 - name: Collect Docker Logs150 if: success() || failure()151 uses: jwalton/gh-docker-logs@v2.2.0152 with:153 dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}'154 images: 'node-parachain'155156 - name: Show Docker logs157 if: success() || failure()158 run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log'159160 - name: Stop running containers161 if: always() 162 run: docker-compose -f ".docker/docker-compose-forkless-data.${{ matrix.network }}.yml" down --volumes163 164 - name: Remove builder cache165 if: always() 166 run: |167 docker builder prune -f -a168 docker system prune -f169 docker image prune -f -a