feat(ldap-sync) #192
Workflow file for this run
This file contains 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: E2E Tests | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
jobs: | |
build: | |
timeout-minutes: 20 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build and export | |
uses: docker/build-push-action@v6 | |
with: | |
tags: stonith404/pocket-id:test | |
outputs: type=docker,dest=/tmp/docker-image.tar | |
- name: Upload Docker image artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: docker-image | |
path: /tmp/docker-image.tar | |
test-sqlite: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: "npm" | |
cache-dependency-path: frontend/package-lock.json | |
- name: Download Docker image artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: docker-image | |
path: /tmp | |
- name: Load Docker Image | |
run: docker load -i /tmp/docker-image.tar | |
- name: Install frontend dependencies | |
working-directory: ./frontend | |
run: npm ci | |
- name: Install Playwright Browsers | |
working-directory: ./frontend | |
run: npx playwright install --with-deps chromium | |
- name: Run Docker Container with Sqlite DB | |
run: | | |
docker run -d --name pocket-id-sqlite \ | |
-p 80:80 \ | |
-e APP_ENV=test \ | |
stonith404/pocket-id:test | |
- name: Run Playwright tests | |
working-directory: ./frontend | |
run: npx playwright test | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: playwright-report-sqlite | |
path: frontend/tests/.report | |
include-hidden-files: true | |
retention-days: 15 | |
test-postgres: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: "npm" | |
cache-dependency-path: frontend/package-lock.json | |
- name: Download Docker image artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: docker-image | |
path: /tmp | |
- name: Load Docker Image | |
run: docker load -i /tmp/docker-image.tar | |
- name: Install frontend dependencies | |
working-directory: ./frontend | |
run: npm ci | |
- name: Install Playwright Browsers | |
working-directory: ./frontend | |
run: npx playwright install --with-deps chromium | |
- name: Create Docker network | |
run: docker network create pocket-id-network | |
- name: Start Postgres DB | |
run: | | |
docker run -d --name pocket-id-db \ | |
--network pocket-id-network \ | |
-e POSTGRES_USER=postgres \ | |
-e POSTGRES_PASSWORD=postgres \ | |
-e POSTGRES_DB=pocket-id \ | |
-p 5432:5432 \ | |
postgres:17 | |
- name: Wait for Postgres to start | |
run: | | |
for i in {1..10}; do | |
if docker exec pocket-id-db pg_isready -U postgres; then | |
echo "Postgres is ready" | |
break | |
fi | |
echo "Waiting for Postgres..." | |
sleep 2 | |
done | |
- name: Run Docker Container with Postgres DB | |
run: | | |
docker run -d --name pocket-id-postgres \ | |
--network pocket-id-network \ | |
-p 80:80 \ | |
-e APP_ENV=test \ | |
-e DB_PROVIDER=postgres \ | |
-e POSTGRES_CONNECTION_STRING=postgresql://postgres:postgres@pocket-id-db:5432/pocket-id \ | |
stonith404/pocket-id:test | |
- name: Run Playwright tests | |
working-directory: ./frontend | |
run: npx playwright test | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: playwright-report-postgres | |
path: frontend/tests/.report | |
include-hidden-files: true | |
retention-days: 15 |