name: PR on: pull_request: jobs: install: 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: Upload node_modules uses: https://gitea.com/actions/gitea-upload-artifact@main with: name: node_modules path: node_modules/ lint: runs-on: ubuntu-latest needs: install steps: - uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: "24" cache: "npm" - name: Restore node_modules uses: https://github.com/ChristopherHX/gitea-download-artifact@main with: name: node_modules - name: Run lint run: npm run lint test: runs-on: ubuntu-latest needs: install steps: - uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: "24" cache: "npm" - name: Restore node_modules uses: https://github.com/ChristopherHX/gitea-download-artifact@main with: name: node_modules - name: Run tests run: npm run test e2e: runs-on: ubuntu-latest needs: install steps: - uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: "24" cache: "npm" - name: Restore node_modules uses: https://github.com/ChristopherHX/gitea-download-artifact@main with: name: node_modules - name: Install Playwright browsers run: npx playwright install --with-deps chromium - 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@v3 - name: Build (dry run) uses: docker/build-push-action@v6 with: context: . push: false tags: ${{ steps.image.outputs.tag }}