git.delta.rocks / unique-network / refs/commits / 27ba026da63d

difftreelog

source

.github/workflows/market-test.yml6.9 KiBsourcehistory
1# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586509375/Market+e2e+test2# Nested workflow for lunching Market e2e tests from external repository https://github.com/UniqueNetwork/market-e2e-tests34name: market api tests56# Controls when the action will run.7on:8  workflow_call:91011# A workflow run is made up of one or more jobs that can run sequentially or in parallel12jobs:1314  prepare-execution-marix:1516    name: Prepare execution matrix1718    runs-on: [self-hosted-ci]19    outputs:20      matrix: ${{ steps.create_matrix.outputs.matrix }}2122    steps:2324      - 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@v3.1.029        with:30          ref: ${{ github.head_ref }}  #Checking out head commit3132      - name: Read .env file33        uses: xom9ikk/dotenv@v23435      - 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 }}}414243  market_test:44    needs: prepare-execution-marix45    # The type of runner that the job will run on46    runs-on: [self-hosted-ci,large]47    timeout-minutes: 3604849    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.52    53    strategy:54      matrix:55        include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}5657    steps:58      - name: Clean Workspace59        uses: AutoModality/action-clean@v1.1.06061      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it62      - name: Checkout master repo63        uses: actions/checkout@master64        with:65          ref: ${{ github.head_ref }}  #Checking out head commit6667      - name: Checkout Market e2e tests68        uses: actions/checkout@v3.1.069        with:70          repository: 'UniqueNetwork/market-e2e-tests'71          ssh-key: ${{ secrets.GH_PAT }}72          path: 'qa-tests'73          ref: 'master'7475      - name: Read .env file76        uses: xom9ikk/dotenv@v277      78      - name: Copy qa-tests/.env.example to qa-tests/.env79        working-directory: qa-tests80        run: cp .env.docker .env81        82      - name: Generate ENV related extend file for docker-compose83        uses: cuchi/jinja2-action@v1.2.084        with:85          template: qa-tests/.docker/docker-compose.tmp-market.j286          output_file: qa-tests/.docker/docker-compose.${{ matrix.network }}.yml87          variables: |88            REPO_URL=${{ github.server_url }}/${{ github.repository }}.git89            RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}90            POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}91            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}92            NETWORK=${{ matrix.network }}93            BRANCH=${{ github.head_ref }}949596      - name: Show build configuration97        working-directory: qa-tests98        run: cat .docker/docker-compose.${{ matrix.network }}.yml99100      - name: Start node-parachain101        working-directory: qa-tests102        run: docker-compose -f ".docker/docker-compose.market.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans --force-recreate node-parachain 103     104      - uses: actions/setup-node@v3.5.1105        with:106          node-version: 18107108      - name: Setup TypeScript109        working-directory: qa-tests110        run: |111          npm install -g ts-node112          npm install113114      - name: Copy qa-tests/.env.docker to qa-tests/.env115        working-directory: qa-tests116        run: | 117          rm -rf .env118          cp .env.docker .env119120# Temporary disable node readyness check. Have to dig into the script logic.121#      - name: Wait for chain up and running122#        working-directory: js-packages/tests123#        run: |124#          yarn install125#          ../scripts/wait_for_first_block.sh126#          echo "Ready to start tests"127#        env:128#          RPC_URL: http://127.0.0.1:9944/129130      - name: Wait for chain up and running131        run: |132          sleep 1200s133          echo "Ready to start Market e2e tests"134135      - name: Show content of .env file and Generate accounts136        working-directory: qa-tests137        run: |138          cat .env139          ts-node ./src/scripts/create-market-accounts.ts140141      - name: Copy qa-tests/.env to qa-tests/.env.docker142        working-directory: qa-tests143        run: | 144          rm -rf .env.docker145          cp .env .env.docker146147      - name: Get chain logs148        if: always()                   # run this step always149        run: |150          docker exec node-parachain cat /polkadot-launch/9944.log151          docker exec node-parachain cat /polkadot-launch/9945.log152          docker exec node-parachain cat /polkadot-launch/alice.log153          docker exec node-parachain cat /polkadot-launch/eve.log154          docker exec node-parachain cat /polkadot-launch/dave.log155          docker exec node-parachain cat /polkadot-launch/charlie.log156   157      - name: Deploy contracts158        run: |159          cd qa-tests160          ts-node ./src/scripts/deploy-contract.ts161162      - name: Timeout for debug163        if: failure()164        run: sleep 300s165166      - name: Import test data167        working-directory: qa-tests168        run: ts-node ./src/scripts/create-test-collections.ts169170      - name: Show content of qa-test .env171        working-directory: qa-tests172        run: cat .env173174      - name: Read qa -test .env file Before market start175        uses: xom9ikk/dotenv@v2176        with:177          path: qa-tests/178179      - name: local-market:start180        run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" up -d --build181182      - name: Wait for market readyness183        working-directory: qa-tests184        run: src/scripts/wait-market-ready.sh185        shell: bash186187      - name: Install dependecies188        working-directory: qa-tests189        run: |190          npm ci191          npm install -D @playwright/test192          npx playwright install-deps193          npx playwright install194195      - name: Show content of qa-test .env196        working-directory: qa-tests197        run: cat .env198          199      - name: Test API interface200        working-directory: qa-tests201        run: |202          npx playwright test --workers=3 --quiet .*.api.test.ts --reporter=github --config playwright.config.ts203204      - name: Timeout for debug205        if: failure()206        run: sleep 300s207208      - name: Stop running containers209        if: always()                   # run this step always210        run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" down --volumes211212      - name: Remove builder cache213        if: always()                   # run this step always214        run: |215          docker builder prune -f216          docker system prune -f