1name: Upgrade replica234on: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-ci,large]28 timeout-minutes: 13802930 name: ${{ matrix.network }}3132 continue-on-error: true 3334 strategy:35 matrix:36 include:37 - network: Opal38 features: opal-runtime39 runtime: opal40 fork_from_address: wss://eu-ws-opal.unique.network:44341 - network: Quartz42 features: quartz-runtime43 runtime: quartz44 fork_from_address: wss://eu-ws-quartz.unique.network:44345 - network: Unique46 features: unique-runtime47 runtime: unique48 fork_from_address: wss://eu-ws.unique.network:4434950 steps:51 - name: Skip if pull request is in Draft52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 if: github.event.pull_request.draft == true67 run: exit 16869 - name: Clean Workspace70 uses: AutoModality/action-clean@v1.1.07172 73 - uses: actions/checkout@v374 with:75 ref: ${{ github.head_ref }} 7677 - name: Read .env file78 uses: xom9ikk/dotenv@v1.0.27980 - name: Generate ENV related extend file for docker-compose81 uses: cuchi/jinja2-action@v1.2.082 with:83 template: .docker/forking/docker-compose.tmp-fork.j284 output_file: .docker/forking/docker-compose.${{ matrix.network }}.yml85 variables: |86 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git87 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}88 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}89 POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}90 FEATURE=${{ matrix.features }}91 RUNTIME=${{ matrix.runtime }}92 BRANCH=${{ github.head_ref }}93 FORK_FROM=${{ matrix.fork_from_address }}9495 - name: Show build configuration96 run: cat .docker/forking/docker-compose.${{ matrix.network }}.yml9798 - name: Generate launch-config-fork.json99 uses: cuchi/jinja2-action@v1.2.0100 with:101 template: .docker/forking/launch-config-fork.j2102 output_file: .docker/forking/launch-config-fork.json103 variables: |104 FEATURE=${{ matrix.features }}105 RUNTIME=${{ matrix.runtime }}106107 - name: Show launch-config-fork configuration108 run: cat .docker/forking/launch-config-fork.json109110111 - name: Build the stack112 run: docker-compose -f ".docker/forking/docker-compose-fork.yaml" -f ".docker/forking/docker-compose.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300113114 - name: Check if docker logs consist logs related to Runtime Upgrade testing.115 if: success()116 run: |117 counter=160118 function do_docker_logs {119 docker logs --details parachain-fork 2>&1120 }121 function is_started {122 echo "Check Docker logs"123 DOCKER_LOGS=$(do_docker_logs)124 if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then125 echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"126 return 0127 exit 0128 fi129 echo "Function is_started: Return 1"130 return 1131 }132 while ! is_started; do133 echo "Waiting for special message in log files "134 sleep 30s135 counter=$(( $counter - 1 ))136 echo "Counter: $counter"137 if [ "$counter" -gt "0" ]; then138 continue139 else140 break141 fi142 done143 exit 1144 shell: bash145146 - name: Collect Docker Logs147 if: success() || failure()148 uses: jwalton/gh-docker-logs@v2.2.0149 with:150 dest: './fork-parachain-update-withdata-logs.${{ matrix.features }}'151 images: 'parachain-fork' 152153 - name: Tar logs154 if: success() || failure()155 run: tar cvzf ./fork-parachain-update-withdata-logs.${{ matrix.features }}.tgz ./fork-parachain-update-withdata-logs.${{ matrix.features }}156157 - name: Upload logs to GitHub158 if: success() || failure()159 uses: actions/upload-artifact@master160 with:161 name: fork-parachain-update-withdata-logs.${{ matrix.features }}.tgz162 path: ./fork-parachain-update-withdata-logs.${{ matrix.features }}.tgz163164 - name: Stop running containers165 if: always() 166 run: docker-compose -f ".docker/forking/docker-compose-fork.yaml" -f ".docker/forking/docker-compose.${{ matrix.network }}.yml" down