1name: Fork Parachain update with data234on: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 fork-update-withdata:26 27 runs-on: self-hosted-ci2829 name: Build Container, Spin it Up an test3031 continue-on-error: true 3233 strategy:34 matrix:35 include:36 - network: Opal37 features: opal-runtime38 runtime: opal39 fork_from_address: wss://eu-ws-opal.unique.network:44340 - network: Quartz41 features: quartz-runtime42 runtime: quartz43 fork_from_address: wss://eu-ws-quartz.unique.network:44344 - network: Unique45 features: unique-runtime46 runtime: unique47 fork_from_address: wss://eu-ws.unique.network:4434849 steps:50 - name: Skip if pull request is in Draft51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 if: github.event.pull_request.draft == true66 run: exit 16768 - name: Clean Workspace69 uses: AutoModality/action-clean@v1.1.07071 72 - uses: actions/checkout@v373 with:74 ref: ${{ github.head_ref }} 7576 - name: Read .env file77 uses: xom9ikk/dotenv@v1.0.27879 - name: Generate ENV related extend file for docker-compose80 uses: cuchi/jinja2-action@v1.2.081 with:82 template: .docker/forking/docker-compose.tmp-fork.j283 output_file: .docker/forking/docker-compose.${{ matrix.network }}.yml84 variables: |85 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git86 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}87 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}88 POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}89 FEATURE=${{ matrix.features }}90 RUNTIME=${{ matrix.runtime }}91 BRANCH=${{ github.head_ref }}92 FORK_FROM=${{ matrix.fork_from_address }}9394 - name: Show build configuration95 run: cat .docker/forking/docker-compose.${{ matrix.network }}.yml9697 - name: Generate launch-config-fork.json98 uses: cuchi/jinja2-action@v1.2.099 with:100 template: .docker/forking/launch-config-fork.j2101 output_file: .docker/forking/launch-config-fork.json102 variables: |103 FEATURE=${{ matrix.features }}104 RUNTIME=${{ matrix.runtime }}105106 - name: Show launch-config-fork configuration107 run: cat .docker/forking/launch-config-fork.json108109110 - name: Build the stack111 run: docker-compose -f ".docker/forking/docker-compose-fork.yaml" -f ".docker/forking/docker-compose.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300112113 - name: Check if docker logs consist logs related to Runtime Upgrade testing.114 if: success()115 run: |116 counter=160117 function do_docker_logs {118 docker logs --details parachain-fork 2>&1119 }120 function is_started {121 echo "Check Docker logs"122 DOCKER_LOGS=$(do_docker_logs)123 if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then124 echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"125 return 0126 exit 0127 fi128 echo "Function is_started: Return 1"129 return 1130 }131 while ! is_started; do132 echo "Waiting for special message in log files "133 sleep 30s134 counter=$(( $counter - 1 ))135 echo "Counter: $counter"136 if [ "$counter" -gt "0" ]; then137 continue138 else139 break140 fi141 done142 exit 1143 shell: bash144145 - name: Collect Docker Logs146 if: success() || failure()147 uses: jwalton/gh-docker-logs@v2.2.0148 with:149 dest: './fork-parachain-update-withdata-logs.${{ matrix.features }}'150 images: 'parachain-fork' 151152 - name: Tar logs153 if: success() || failure()154 run: tar cvzf ./fork-parachain-update-withdata-logs.${{ matrix.features }}.tgz ./fork-parachain-update-withdata-logs.${{ matrix.features }}155156 - name: Upload logs to GitHub157 if: success() || failure()158 uses: actions/upload-artifact@master159 with:160 name: fork-parachain-update-withdata-logs.${{ matrix.features }}.tgz161 path: ./fork-parachain-update-withdata-logs.${{ matrix.features }}.tgz162163 - name: Stop running containers164 if: always() 165 run: docker-compose -f ".docker/forking/docker-compose-fork.yaml" -f ".docker/forking/docker-compose.${{ matrix.network }}.yml" down