name: PR on: pull_request: jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: "24" cache: "npm" - name: Install dependencies run: npm ci - name: Run lint run: npm run lint test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: "24" cache: "npm" - name: Install dependencies run: npm ci - name: Run tests run: npm run test e2e: runs-on: ubuntu-latest container: image: mcr.microsoft.com/playwright:v1.58.2-noble steps: - uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: "24" cache: "npm" - name: Install dependencies run: npm ci - name: Generate dev cert run: ./scripts/gen-dev-cert.sh - name: Run e2e tests run: npm run test:e2e env: NODE_TLS_REJECT_UNAUTHORIZED: "0" docker-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Set Docker image tag id: image run: | REGISTRY="${GITHUB_SERVER_URL#https://}" REGISTRY="${REGISTRY#http://}" echo "tag=${REGISTRY}/${{ github.repository }}:latest" >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 - name: Build (dry run) uses: docker/build-push-action@v7 with: context: . push: false tags: ${{ steps.image.outputs.tag }}