1name: Upgrade nodata234on:5 6 pull_request:7 branches:8 - master9 types:10 - opened11 - reopened12 - synchronize 13 - ready_for_review1415 16 workflow_dispatch:171819env:20 REPO_URL: ${{ github.server_url }}/${{ github.repository }}212223jobs:2425 prepare-execution-marix:26 27 name: Prepare execution matrix28 29 runs-on: self-hosted-ci30 outputs:31 matrix: ${{ steps.create_matrix.outputs.matrix }}32 steps:33 34 - name: Clean Workspace35 uses: AutoModality/action-clean@v1.1.03637 38 - uses: actions/checkout@v339 with:40 ref: ${{ github.head_ref }} 4142 - name: Read .env file43 uses: xom9ikk/dotenv@v1.0.24445 - name: Create Execution matrix46 uses: fabiocaccamo/create-matrix-action@v247 id: create_matrix48 with:49 matrix: |50 network {Opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}51 network {Quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}52 network {Unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}53545556 forkless-update-nodata:57 needs: prepare-execution-marix58 59 runs-on: [self-hosted-ci,medium]60 timeout-minutes: 13806162 name: ${{ matrix.network }}6364 continue-on-error: true 6566 strategy:67 matrix:68 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}697071 steps:72 - name: Skip if pull request is in Draft73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 if: github.event.pull_request.draft == true88 run: exit 18990 - name: Clean Workspace91 uses: AutoModality/action-clean@v1.1.09293 94 - uses: actions/checkout@v395 with:96 ref: ${{ github.head_ref }} 9798 - name: Read .env file99 uses: xom9ikk/dotenv@v1.0.2100101 - name: Generate ENV related extend file for docker-compose102 uses: cuchi/jinja2-action@v1.2.0103 with:104 template: .docker/docker-compose.tmp-forkless.j2105 output_file: .docker/docker-compose.${{ matrix.network }}.yml106 variables: |107 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git108 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}109 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}110 POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}111 MAINNET_TAG=${{ matrix.mainnet_tag }}112 MAINNET_BRANCH=${{ matrix.mainnet_branch }}113 FEATURE=${{ matrix.features }}114 RUNTIME=${{ matrix.runtime }}115 BRANCH=${{ github.head_ref }}116117 - name: Show build configuration118 run: cat .docker/docker-compose.${{ matrix.network }}.yml119120 - name: Generate launch-config.json121 uses: cuchi/jinja2-action@v1.2.0122 with:123 template: .docker/launch-config.j2124 output_file: .docker/launch-config-forkless.json125 variables: |126 FEATURE=${{ matrix.features }}127 RUNTIME=${{ matrix.runtime }}128129 - name: Show launch-config-forkless configuration130 run: cat .docker/launch-config-forkless.json131132133 - name: Build the stack134 run: docker-compose -f ".docker/docker-compose-forkless.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300135136 - name: Check if docker logs consist logs related to Runtime Upgrade testing.137 if: success()138 run: |139 counter=160140 function check_container_status {141 docker inspect -f {{.State.Running}} node-parachain142 }143 function do_docker_logs {144 docker logs --details node-parachain 2>&1145 }146 function is_started {147 if [ "$(check_container_status)" == "true" ]; then148 echo "Container: node-parachain RUNNING";149 echo "Check Docker logs"150 DOCKER_LOGS=$(do_docker_logs)151 if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then152 echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"153 return 0154 exit 1155 else 156 echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸 - Not found in logs output."157 return 1158 exit 1159 fi160 else161 echo "Container node-parachain not RUNNING"162 echo "Halting all future checks"163 exit 1164 fi165 exit 0166 }167 while ! is_started; do168 echo "Waiting for special message in log files "169 sleep 30s170 counter=$(( $counter - 1 ))171 echo "Counter: $counter"172 if [ "$counter" -gt "0" ]; then173 continue174 else175 break176 fi177 done178 echo "Halting script"179 exit 0180 shell: bash181182 - name: Collect Docker Logs183 if: success() || failure()184 uses: jwalton/gh-docker-logs@v2.2.0185 with:186 dest: './forkless-parachain-update-nodata-logs.${{ matrix.features }}'187 images: 'node-parachain' 188189 - name: Tar logs190 if: success() || failure()191 run: tar cvzf ./forkless-parachain-update-nodata-logs.${{ matrix.features }}.tgz ./forkless-parachain-update-nodata-logs.${{ matrix.features }}192193 - name: Upload logs to GitHub194 if: success() || failure()195 uses: actions/upload-artifact@master196 with:197 name: forkless-parachain-update-nodata-logs.${{ matrix.features }}.tgz198 path: ./forkless-parachain-update-nodata-logs.${{ matrix.features }}.tgz199200 - name: Stop running containers201 if: always() 202 run: docker-compose -f ".docker/docker-compose-forkless.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down