git.delta.rocks / unique-network / refs/commits / a73c3160b586

difftreelog

source

.github/workflows/xcm.yml10.6 KiBsourcehistory
1name: xcm-testnet23# Controls when the action will run.4on:5  workflow_call:67  # Allows you to run this workflow manually from the Actions tab8  workflow_dispatch:910#Define Workflow variables11env:12  REPO_URL: ${{ github.server_url }}/${{ github.repository }}1314# A workflow run is made up of one or more jobs that can run sequentially or in parallel15jobs:16  prepare-execution-marix:17    name: Prepare execution matrix1819    runs-on: [ self-hosted-ci ]20    outputs:21      matrix: ${{ steps.create_matrix.outputs.matrix }}2223    steps:24      - name: Clean Workspace25        uses: AutoModality/action-clean@v1.1.02627      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it28      - uses: actions/checkout@v4.1.729        with:30          ref: ${{ github.head_ref }} #Checking out head commit3132      - name: Read .env file33        uses: xom9ikk/dotenv@v2.3.03435      - name: Create Execution matrix36        uses: CertainLach/create-matrix-action@v437        id: create_matrix38        with:39          matrix: |40            network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, assethub_version {${{ env.WESTMINT_BUILD_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, acala_repository {acala-node}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, runtest {testXcmOpal}41            network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, assethub_version {${{ env.STATEMINE_BUILD_BRANCH }}}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, acala_repository {karura-node}, moonbeam_version {${{ env.MOONRIVER_BUILD_BRANCH }}}, astar_version {${{ env.SHIDEN_BUILD_BRANCH }}}, runtest {testFullXcmQuartz}42            network {unique}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, assethub_version {${{ env.STATEMINT_BUILD_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, acala_repository {acala-node}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, runtest {testFullXcmUnique}4344  xcm:45    needs: prepare-execution-marix46    # The type of runner that the job will run on47    runs-on: [XL]4849    timeout-minutes: 6005051    name: ${{ matrix.network }}5253    continue-on-error: true #Do not stop testing of matrix runs failed.  As it decided during PR review - it required 50/50& Let's check it with false.5455    strategy:56      matrix:57        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}5859    steps:60      - name: Skip if pull request is in Draft61        if: github.event.pull_request.draft == true62        run: exit 16364      - name: Clean Workspace65        uses: AutoModality/action-clean@v1.1.06667      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it68      - uses: actions/checkout@v4.1.769        with:70          ref: ${{ github.head_ref }} #Checking out head commit7172      # Prepare SHA73      - name: Prepare SHA74        uses: ./.github/actions/prepare7576      - name: Read .env file77        uses: xom9ikk/dotenv@v2.3.07879      - name: Log in to Docker Hub80        uses: docker/login-action@v3.2.081        with:82          username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}83          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8485      - name: Check and pull polkadot image86        id: polkadot87        uses: cloudposse/github-action-docker-image-exists@main88        with:89          registry: registry.hub.docker.com90          organization: parity91          repository: polkadot92          login: ${{ secrets.CORE_DOCKERHUB_USERNAME }}93          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}94          tag: ${{ matrix.relay_branch }}9596      - name: Check and pull acala image97        id: acala98        uses: cloudposse/github-action-docker-image-exists@main99        with:100          registry: registry.hub.docker.com101          organization: acala102          repository: ${{ matrix.acala_repository }}103          login: ${{ secrets.CORE_DOCKERHUB_USERNAME }}104          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}105          tag: ${{ matrix.acala_version }}106107      - name: Check and pull MOONBEAM image108        id: moonbeam109        uses: cloudposse/github-action-docker-image-exists@main110        with:111          registry: registry.hub.docker.com112          organization: moonbeamfoundation113          repository: moonbeam114          login: ${{ secrets.CORE_DOCKERHUB_USERNAME }}115          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}116          tag: ${{ matrix.moonbeam_version }}117118      - name: Check and pull ASSETHUB image119        id: assethub120        uses: cloudposse/github-action-docker-image-exists@main121        with:122          registry: registry.hub.docker.com123          organization: parity124          repository: polkadot-parachain125          login: ${{ secrets.CORE_DOCKERHUB_USERNAME }}126          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}127          tag: ${{ matrix.assethub_version }}128129      - name: Check and pull ASTAR image130        id: astar131        uses: cloudposse/github-action-docker-image-exists@main132        with:133          registry: registry.hub.docker.com134          organization: staketechnologies135          repository: astar-collator136          login: ${{ secrets.CORE_DOCKERHUB_USERNAME }}137          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}138          tag: ${{ matrix.astar_version }}139140      - name: Check and pull POLKADEX image141        id: polkadex142        uses: cloudposse/github-action-docker-image-exists@main143        with:144          registry: registry.hub.docker.com145          organization: polkadex146          repository: mainnet147          login: ${{ secrets.CORE_DOCKERHUB_USERNAME }}148          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}149          tag: ${{ env.POLKADEX_BUILD_BRANCH }}150151      - name: Prepare Hydradx152        uses: ./.github/actions/buildContainer153        id: hydradx154        with:155          container: uniquenetwork/builder-hydradx156          tag: ${{ env.HYDRADX_BUILD_BRANCH }}157          context: .158          dockerfile: .docker/Dockerfile-hydradx159          args: |160            --build-arg HYDRADX_BUILD_BRANCH=${{ env.HYDRADX_BUILD_BRANCH }}161            --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}162          dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}163          dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}164165      - name: Prepare latest166        uses: ./.github/actions/buildContainer167        id: latest168        with:169          container: uniquenetwork/ci-xcm-local170          tag: ${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}171          context: .172          dockerfile: .docker/Dockerfile-unique173          args: |174            --build-arg FEATURES=${{ matrix.network }}-runtime175          dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}176          dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}177178      - uses: actions/setup-node@v4.0.2179        with:180          node-version: 20181182      - name: Install baedeker183        uses: UniqueNetwork/baedeker-action/setup@v1-no-debug-output184        with:185          useCache: false        186187      - name: Setup library188        run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library189190      - name: Start network191        uses: UniqueNetwork/baedeker-action@v1-no-debug-output192        id: bdk193        with:194          jpath: |195            .baedeker/vendor196          tla-str: |197            relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local198          inputs: |199            .baedeker/xcm-${{ matrix.network }}.jsonnet200            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.image }}:${{ steps.polkadot.outputs.tag }}'}})201            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}})202            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/acala':{dockerImage:'${{ steps.acala.outputs.image }}:${{ steps.acala.outputs.tag }}'}})203            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/moonbeam':{dockerImage:'${{ steps.moonbeam.outputs.image }}:${{ steps.moonbeam.outputs.tag }}'}})204            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/assethub':{dockerImage:'${{ steps.assethub.outputs.image }}:${{ steps.assethub.outputs.tag }}'}})205            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/astar':{dockerImage:'${{ steps.astar.outputs.image }}:${{ steps.astar.outputs.tag }}', docker:'/usr/local/bin/astar-collator'}})206            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadex':{dockerImage:'${{ steps.polkadex.outputs.image }}:${{ steps.polkadex.outputs.tag }}'}})207            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/hydradx':{dockerImage:'${{ steps.latest.outputs.name }}'}})208209      - name: Upload network config210        uses: actions/upload-artifact@v3211        with:212          name: ${{ matrix.network }}-network-config213          path: ${{ steps.bdk.outputs.composeProject }}214          retention-days: 2215216      - name: Ensure network is alive217        working-directory: js-packages/tests218        id: alive1219        if: ${{ !cancelled() && steps.bdk.outcome == 'success' }}220        run: |221          yarn222          yarn add mochawesome223          ../scripts/wait_for_first_block.sh224        env:225          RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}226227      - name: Call HRMP initialization228        working-directory: js-packages/scripts229        id: hrmp230        if: ${{ !cancelled() && steps.alive1.outcome == 'success' }}231        run: |232          yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm createHrmp.ts ${{matrix.network}}233234      - name: Run XCM tests235        working-directory: js-packages/tests236        id: tests237        if: ${{ !cancelled() && steps.hrmp.outcome == 'success' }}238        run: |239          echo "Ready to start tests"240          NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW}241        env:242          RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }}          243244      - name: XCM Test Report245        uses: phoenix-actions/test-reporting@v15246        id: test-report247        if: success() || failure()248        with:249          name: XCM Tests ${{ matrix.network }}250          path: js-packages/tests/mochawesome-report/test-*.json251          reporter: mochawesome-json252          fail-on-error: 'false'253254      - name: Clean Workspace255        if: always()256        uses: AutoModality/action-clean@v1.1.0257258      - name: Remove builder cache259        if: always()260        run: |261          docker system prune -a -f