name: NocoBase E2E Test concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true on: push: branches: - 'main' - 'develop' paths: - '.github/workflows/nocobase-test-e2e.yml' - 'packages/**' pull_request: branches: - '**' paths: - '.github/workflows/nocobase-test-e2e.yml' - 'packages/**' jobs: e2e-test-postgres: strategy: matrix: node_version: ['18'] runs-on: ubuntu-latest container: node:${{ matrix.node_version }} services: # Label used to access the service container postgres: # Docker Hub image image: postgres:11 # Provide the password for postgres env: POSTGRES_USER: nocobase POSTGRES_PASSWORD: password # Set health checks to wait until postgres has started options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node_version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node_version }} cache: 'yarn' - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - uses: actions/cache@v3 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - run: yarn install - name: yarn build run: yarn build env: __E2E__: true - run: npx playwright install chromium --with-deps - name: Test with postgres run: yarn e2e p-test --stop-on-error env: __E2E__: true APP_ENV: production LOGGER_LEVEL: error DB_DIALECT: postgres DB_HOST: postgres DB_PORT: 5432 DB_USER: nocobase DB_PASSWORD: password DB_DATABASE: nocobase timeout-minutes: 100