1name: collator-selection-test-run234on:5 workflow_call:67 8 workflow_dispatch:91011env:12 REPO_URL: ${{ github.server_url }}/${{ github.repository }}131415jobs:1617 prepare-execution-marix:1819 name: Prepare execution matrix2021 runs-on: [self-hosted-ci]22 outputs:23 matrix: ${{ steps.create_matrix.outputs.matrix }}2425 steps:2627 - name: Clean Workspace28 uses: AutoModality/action-clean@v1.1.02930 31 - uses: actions/checkout@v3.1.032 with:33 ref: ${{ github.head_ref }} 3435 - name: Read .env file36 uses: xom9ikk/dotenv@v23738 - name: Create Execution matrix39 uses: CertainLach/create-matrix-action@v440 id: create_matrix41 with:42 matrix: |43 network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}44 network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}4546 collator-selection:4748 needs: prepare-execution-marix49 50 runs-on: [self-hosted-ci,large]5152 timeout-minutes: 13805354 name: ${{ matrix.network }}5556 continue-on-error: true 5758 strategy:59 matrix:60 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}6162 steps:63 - name: Skip if pull request is in Draft64 if: github.event.pull_request.draft == true65 run: exit 16667 - name: Clean Workspace68 uses: AutoModality/action-clean@v1.1.06970 71 - uses: actions/checkout@v3.1.072 with:73 ref: ${{ github.head_ref }} 7475 76 - name: Prepare SHA77 uses: ./.github/actions/prepare7879 - name: Read .env file80 uses: xom9ikk/dotenv@v28182 - name: Log in to Docker Hub83 uses: docker/login-action@v2.1.084 with:85 username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}86 password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8788 - name: Run find-and-replace to remove slashes from branch name89 uses: mad9000/actions-find-and-replace-string@490 id: branchname91 with:92 source: ${{ github.head_ref }}93 find: '/'94 replace: '-'9596 - name: Generate ENV related extend Dockerfile file for POLKADOT97 uses: cuchi/jinja2-action@v1.2.098 with:99 template: .docker/Dockerfile-polkadot.j2100 output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml101 variables: |102 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}103 POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}104 105 - name: Prepare polkadot106 uses: ./.github/actions/buildContainer107 id: polkadot108 with:109 container: uniquenetwork/builder-polkadot110 tag: ${{ matrix.relay_branch }}111 context: .docker112 dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml113 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}114 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}115116 117 118 119120 121 122 123 124 125 126 127128 129 130131132 - name: Prepare latest133 uses: ./.github/actions/buildContainer134 id: latest135 with:136 container: uniquenetwork/ci-collator-selection-local137 tag: ${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}138 context: .139 dockerfile: .docker/Dockerfile-unique140 args: |141 --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }},session-test-timings142 --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}143 dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}144 dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}145146 - uses: actions/setup-node@v3.5.1147 with:148 node-version: 20149150 - name: Install baedeker151 uses: UniqueNetwork/baedeker-action/setup@built152153 - name: Setup library154 run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library155156 - name: Start network157 uses: UniqueNetwork/baedeker-action@built158 id: bdk159 with:160 jpath: |161 .baedeker/vendor162 tla-str: |163 relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local164 inputs: |165 .baedeker/collator-selection.jsonnet166 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}})167 snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}})168169 - name: Upload network config170 uses: actions/upload-artifact@v3171 with:172 name: ${{ matrix.network }}-network-config173 path: ${{ steps.bdk.outputs.composeProject }}174 retention-days: 2175176 - name: Run tests177 working-directory: js-packages/tests178 run: |179 yarn install180 yarn add mochawesome181 # Wanted by both wait_for_first_block182 # export RPC_URL="${RELAY_SAPPHIRE_HTTP_URL:-${RELAY_OPAL_HTTP_URL:-${RELAY_QUARTZ_HTTP_URL:-${RELAY_UNIQUE_HTTP_URL:-}}}}"183 ../scripts/wait_for_first_block.sh184 echo "Ready to start tests"185 NOW=$(date +%s) && yarn testCollators --reporter mochawesome --reporter-options reportFilename=test-collators-${NOW}186 env:187 RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} 188189 - name: Test Report190 uses: phoenix-actions/test-reporting@v10191 id: test-report192 if: success() || failure()193 with:194 name: Collator Selection Tests ${{ matrix.network }}195 path: js-packages/tests/mochawesome-report/test-collators-*.json196 reporter: mochawesome-json197 fail-on-error: 'false'198199 - name: Clean Workspace200 if: always()201 uses: AutoModality/action-clean@v1.1.0202203 - name: Remove builder cache204 if: always()205 run: |206 docker system prune -a -f