refactor: Update e2e tests to use gql.tada features #4597
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build & Test | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - master | |
| - minor | |
| - major | |
| paths: | |
| - 'packages/**' | |
| - 'package.json' | |
| - 'package-lock.json' | |
| pull_request: | |
| branches: | |
| - master | |
| - major | |
| - minor | |
| paths: | |
| - 'packages/**' | |
| - 'package.json' | |
| - 'package-lock.json' | |
| env: | |
| CI: true | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| codegen: | |
| uses: ./.github/workflows/codegen.yml | |
| build: | |
| name: build | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| strategy: | |
| matrix: | |
| node: [20.x, 22.x, 24.x] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: npm install | |
| run: | | |
| npm install | |
| npm install --os=linux --cpu=x64 sharp | |
| - name: Build | |
| run: npm run build | |
| unit-tests: | |
| name: unit tests | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| strategy: | |
| matrix: | |
| node: [20.x, 22.x, 24.x] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: npm install | |
| run: | | |
| npm install | |
| npm install --os=linux --cpu=x64 sharp | |
| - name: Build | |
| run: npx lerna run ci | |
| - name: Unit tests | |
| run: npm run test | |
| e2e-tests: | |
| name: e2e tests | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| services: | |
| mariadb: | |
| # With v11.6.2+, a default was changed, (https://mariadb.com/kb/en/innodb-system-variables/#innodb_snapshot_isolation) | |
| # which causes e2e test failures currently | |
| image: mariadb:11.5 | |
| env: | |
| MARIADB_ROOT_PASSWORD: password | |
| ports: | |
| - 3306 | |
| options: --health-cmd="mariadb-admin ping -h localhost -u vendure -ppassword" --health-interval=10s --health-timeout=5s --health-retries=3 | |
| mysql: | |
| image: vendure/mysql-8-native-auth:latest | |
| env: | |
| MYSQL_ROOT_PASSWORD: password | |
| ports: | |
| - 3306 | |
| options: --health-cmd="mysqladmin ping --silent" --health-interval=10s --health-timeout=20s --health-retries=10 | |
| postgres: | |
| image: postgres:16 | |
| env: | |
| POSTGRES_USER: vendure | |
| POSTGRES_PASSWORD: password | |
| ports: | |
| - 5432 | |
| options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3 | |
| elastic: | |
| image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1 | |
| env: | |
| discovery.type: single-node | |
| bootstrap.memory_lock: true | |
| ES_JAVA_OPTS: -Xms512m -Xmx512m | |
| # Elasticsearch will force read-only mode when total available disk space is less than 5%. Since we will | |
| # be running on a shared Azure instance with 84GB SSD, we easily go below 5% available even when there are still | |
| # > 3GB free. So we set this value to an absolute one rather than a percentage to prevent all the Elasticsearch | |
| # e2e tests from failing. | |
| cluster.routing.allocation.disk.watermark.low: 500mb | |
| cluster.routing.allocation.disk.watermark.high: 200mb | |
| cluster.routing.allocation.disk.watermark.flood_stage: 100mb | |
| ports: | |
| - 9200 | |
| options: --health-cmd="curl --silent --fail localhost:9200/_cluster/health" --health-interval=10s --health-timeout=5s --health-retries=3 | |
| redis: | |
| image: redis:7.4.1 | |
| ports: | |
| - 6379 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: [20.x, 22.x, 24.x] | |
| db: [sqljs, mariadb, mysql, postgres] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: npm install | |
| run: | | |
| npm install | |
| npm install --os=linux --cpu=x64 sharp | |
| - name: Build | |
| run: npx lerna run ci | |
| - name: e2e tests | |
| env: | |
| E2E_MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }} | |
| E2E_MARIADB_PORT: ${{ job.services.mariadb.ports['3306'] }} | |
| E2E_POSTGRES_PORT: ${{ job.services.postgres.ports['5432'] }} | |
| E2E_ELASTIC_PORT: ${{ job.services.elastic.ports['9200'] }} | |
| E2E_REDIS_PORT: ${{ job.services.redis.ports['6379'] }} | |
| DB: ${{ matrix.db }} | |
| run: npm run e2e |