1234name: market api tests567on:8 workflow_call:9101112jobs: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 28 - uses: actions/checkout@v3.1.029 with:30 ref: ${{ github.head_ref }} 3132 - 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 46 runs-on: [self-hosted-ci,large]47 timeout-minutes: 3604849 name: ${{ matrix.network }} 5051 continue-on-error: true 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 62 - name: Checkout master repo63 uses: actions/checkout@master64 with:65 ref: ${{ github.head_ref }} 6667 - 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: 20107108 - 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 .env119120121122123124125126127128129130 - 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() 149 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() 210 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() 214 run: |215 docker builder prune -f216 docker system prune -f