name: Integration Testing on: workflow_dispatch: push: branches: - "main" paths: - ".github/workflows/integration-test.yml" # this file - "src/services/ldap-directory.service*" # we only have integration for LDAP testing at the moment - "./openldap/**/*" # any change to test fixtures - "./docker-compose.yml" # any change to Docker configuration pull_request: paths: - ".github/workflows/integration-test.yml" # this file - "src/services/ldap-directory.service*" # we only have integration for LDAP testing at the moment - "./openldap/**/*" # any change to test fixtures - "./docker-compose.yml" # any change to Docker configuration jobs: testing: name: Run tests if: ${{ startsWith(github.head_ref, 'version_bump_') == false }} runs-on: ubuntu-22.04 permissions: checks: write contents: read pull-requests: write steps: - name: Check out repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Get Node version id: retrieve-node-version run: | NODE_NVMRC=$(cat .nvmrc) NODE_VERSION=${NODE_NVMRC/v/''} echo "node_version=$NODE_VERSION" >> $GITHUB_OUTPUT - name: Set up Node uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 with: cache: 'npm' cache-dependency-path: '**/package-lock.json' node-version: ${{ steps.retrieve-node-version.outputs.node_version }} - name: Install Node dependencies run: npm ci - name: Install mkcert run: | sudo apt-get update sudo apt-get -y install mkcert - name: Setup integration tests run: npm run test:integration:setup - name: Run integration tests run: npm run test:integration --coverage - name: Report test results uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 # v1.9.1 if: ${{ github.event.pull_request.head.repo.full_name == github.repository && !cancelled() }} with: name: Test Results path: "junit.xml" reporter: jest-junit fail-on-error: true - name: Upload coverage to codecov.io uses: codecov/codecov-action@5a605bd92782ce0810fa3b8acc235c921b497052 # v5.2.0 - name: Upload results to codecov.io uses: codecov/test-results-action@4e79e65778be1cecd5df25e14af1eafb6df80ea9 # v1.0.2