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

difftreelog

source

.github/workflows/xnft.yml6.3 KiBsourcehistory
1name: xnft-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 {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, acala_repository {karura-node}, runtest {all-quartz}4142  xnft:43    needs: prepare-execution-marix44    # The type of runner that the job will run on45    runs-on: [XL]4647    timeout-minutes: 6004849    name: ${{ matrix.network }}5051    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.5253    strategy:54      matrix:55        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}5657    steps:58      - name: Skip if pull request is in Draft59        if: github.event.pull_request.draft == true60        run: exit 16162      - name: Clean Workspace63        if: always()64        uses: AutoModality/action-clean@v1.1.06566      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it67      - uses: actions/checkout@v4.1.768        with:69          ref: ${{ github.head_ref }} #Checking out head commit7071      # Prepare SHA72      - name: Prepare SHA73        uses: ./.github/actions/prepare7475      - name: Read .env file76        uses: xom9ikk/dotenv@v2.3.07778      - name: Log in to Docker Hub79        uses: docker/login-action@v3.2.080        with:81          username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}82          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}8384      - name: Check and pull polkadot image85        id: polkadot86        uses: cloudposse/github-action-docker-image-exists@main87        with:88          registry: registry.hub.docker.com89          organization: parity90          repository: polkadot91          login: ${{ secrets.CORE_DOCKERHUB_USERNAME }}92          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}93          tag: ${{ matrix.relay_branch }}9495      - name: Check and pull acala image96        id: acala97        uses: cloudposse/github-action-docker-image-exists@main98        with:99          registry: registry.hub.docker.com100          organization: acala101          repository: ${{ matrix.acala_repository }}102          login: ${{ secrets.CORE_DOCKERHUB_USERNAME }}103          password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}104          tag: ${{ matrix.acala_version }}105106      - name: Prepare latest107        uses: ./.github/actions/buildContainer108        id: latest109        with:110          container: uniquenetwork/ci-xnft-local111          tag: ${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}112          context: .113          dockerfile: .docker/Dockerfile-unique114          args: |115            --build-arg FEATURES=${{ matrix.network }}-runtime116          dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}117          dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }}118119      - uses: actions/setup-node@v4.0.2120        with:121          node-version: 20122123      - name: Clone xnft-tests124        run: git clone -b master https://github.com/UniqueNetwork/xnft-tests.git125126      - name: Install baedeker127        uses: UniqueNetwork/baedeker-action/setup@v1-no-debug-output128        with:129          useCache: false        130131      - name: Setup library132        run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library133134      - name: Start network135        uses: UniqueNetwork/baedeker-action@v1-no-debug-output136        if: success()137        id: bdk138        with:139          jpath: |140            .baedeker/vendor141          tla-str: |142            relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local143          inputs: |144            xnft-tests/.baedeker/testnets.jsonnet145            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.image }}:${{ steps.polkadot.outputs.tag }}'}})146            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/quartz':{dockerImage:'${{ steps.latest.outputs.name }}'}}, extra_node_mixin={extraArgs: []})147            snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/karura':{dockerImage:'${{ steps.acala.outputs.image }}:${{ steps.acala.outputs.tag }}'}})148149      - name: Ensure network is alive150        working-directory: js-packages/tests151        id: alive1152        if: ${{ !cancelled() && steps.bdk.outcome == 'success' }}153        run: |154          yarn155          yarn add mochawesome156          ../scripts/wait_for_first_block.sh157        env:158          RPC_URL: ${{ env.RELAY_QUARTZ_HTTP_URL }}159160      - name: Yarn install161        working-directory: xnft-tests162        run: |163          yarn install164          yarn add mochawesome165166      - name: Run XNFT Tests167        working-directory: xnft-tests168        if: ${{ !cancelled() && steps.alive1.outcome == 'success' }}169        run: |170          NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW}171        env:172          RPC_URL: ${{ env.RELAY_QUARTZ_HTTP_URL }}             173174      - name: XNFT Tests Report175        uses: phoenix-actions/test-reporting@v15176        id: test-report177        if: success() || failure()178        with:179          name: XNFT Tests ${{ matrix.network }}180          path: xnft-tests/mochawesome-report/test-*.json181          reporter: mochawesome-json182          fail-on-error: 'false'183184      - name: Remove builder cache185        if: always()186        run: |187          docker system prune -a -f