1name: Forkless Parachain update with no data234on:5 6 pull_request:7 branches:8 - develop9 types:10 - opened11 - reopened12 - synchronize 1314 15 workflow_dispatch:161718env:19 REPO_URL: ${{ github.server_url }}/${{ github.repository }}202122jobs:2324 prepare-execution-marix:25 26 name: Prepare execution matrix27 28 runs-on: self-hosted-ci29 outputs:30 matrix: ${{ steps.create_matrix.outputs.matrix }}31 steps:32 33 - name: Clean Workspace34 uses: AutoModality/action-clean@v1.1.03536 37 - uses: actions/checkout@v338 with:39 ref: ${{ github.head_ref }} 4041 - name: Read .env file42 uses: xom9ikk/dotenv@v1.0.24344 - name: Create Execution matrix45 uses: fabiocaccamo/create-matrix-action@v246 id: create_matrix47 uses: ./48 with:49 matrix: |50 network {Opal}, runtime {opal}, feature {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}51 network {Quartz}, runtime {quartz}, feature {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}52 network {Unique}, runtime {unique}, feature {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}53545556 forkless-update-nodata:57 needs: prepare-execution-marix58 59 runs-on: self-hosted-ci6061 name: Build Container, Spin it Up an test6263 continue-on-error: true 6465 strategy:66 matrix:67 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}6869707172737475767778798081828384858687 steps:8889 90 91 92 93 94 95 96 97 98 99 100 101 102 103104105106 - name: Clean Workspace107 uses: AutoModality/action-clean@v1.1.0108109 110 - uses: actions/checkout@v3111 with:112 ref: ${{ github.head_ref }} 113114 - name: Read .env file115 uses: xom9ikk/dotenv@v1.0.2116117 - name: Generate ENV related extend file for docker-compose118 uses: cuchi/jinja2-action@v1.2.0119 with:120 template: .docker/docker-compose.tmp-forkless.j2121 output_file: .docker/docker-compose.${{ matrix.network }}.yml122 variables: |123 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git124 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}125 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}126 POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}127 MAINNET_TAG=${{ matrix.mainnet_tag }}128 MAINNET_BRANCH=${{ matrix.mainnet_branch }}129 FEATURE=${{ matrix.features }}130 RUNTIME=${{ matrix.runtime }}131 BRANCH=${{ github.head_ref }}132133 - name: Show build configuration134 run: cat .docker/docker-compose.${{ matrix.network }}.yml135136 - name: Generate launch-config.json137 uses: cuchi/jinja2-action@v1.2.0138 with:139 template: .docker/launch-config.j2140 output_file: .docker/launch-config-forkless.json141 variables: |142 FEATURE=${{ matrix.features }}143 RUNTIME=${{ matrix.runtime }}144145 - name: Show launch-config-forkless configuration146 run: cat .docker/launch-config-forkless.json147148149 - name: Build the stack150 run: docker-compose -f ".docker/docker-compose-forkless.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300151152 - name: Check if docker logs consist logs related to Runtime Upgrade testing.153 if: success()154 run: |155 counter=160156 function do_docker_logs {157 docker logs --details node-parachain 2>&1158 }159 function is_started {160 echo "Check Docker logs"161 DOCKER_LOGS=$(do_docker_logs)162 if [[ ${DOCKER_LOGS} = *"RUNTIME UPGRADE TESTING COMPLETE"* ]];then163 echo "Function is_started: Return 0"164 return 0165 fi166 echo "Function is_started: Return 1"167 return 1168 }169 while ! is_started; do170 echo "Waiting for "RUNTIME UPGRADE TESTING" in container logs"171 sleep 30s172 counter=$(( $counter - 1 ))173 echo "Counter: $counter"174 if [ "$counter" -gt "0" ]; then175 continue176 else177 break178 fi179 done180 echo "Test completed."181 exit 1182 shell: bash183184 - name: Collect Docker Logs185 if: success() || failure()186 uses: jwalton/gh-docker-logs@v2.2.0187 with:188 dest: './forkless-parachain-update-nodata-logs.${{ matrix.features }}'189 images: 'node-parachain' 190191 - name: Tar logs192 if: success() || failure()193 run: tar cvzf ./forkless-parachain-update-nodata-logs.${{ matrix.features }}.tgz ./forkless-parachain-update-nodata-logs.${{ matrix.features }}194195 - name: Upload logs to GitHub196 if: success() || failure()197 uses: actions/upload-artifact@master198 with:199 name: forkless-parachain-update-nodata-logs.${{ matrix.features }}.tgz200 path: ./forkless-parachain-update-nodata-logs.${{ matrix.features }}.tgz201202 - name: Stop running containers203 if: always() 204 run: docker-compose -f ".docker/docker-compose-forkless.yaml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down