name: ci on: pull_request: branches: [main] push: branches: [main] jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: { fetch-depth: 0 } - uses: pnpm/action-setup@v3 with: { version: 9 } - uses: actions/setup-node@v4 with: node-version: 20 cache: pnpm - run: pnpm install --frozen-lockfile - name: Verify CHANGELOG has an entry for this PR if: github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-changelog') run: node ./scripts/check-changelog.mjs - name: Install Playwright browsers run: pnpm exec playwright install --with-deps chromium - name: Visual regression run: pnpm test:visual - name: Upload diff artefacts on failure if: failure() uses: actions/upload-artifact@v4 with: name: playwright-report path: playwright-report/ retention-days: 14 release: if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') needs: check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v3 with: { version: 9 } - uses: actions/setup-node@v4 with: { node-version: 20, cache: pnpm } - run: pnpm install --frozen-lockfile # When a private registry is in use, uncomment: # - name: Publish to registry # run: pnpm publish --no-git-checks # env: # NPM_CONFIG_REGISTRY: https://gitea.example.com/api/packages/whynot/npm/ # NPM_AUTH_TOKEN: ${{ secrets.GITEA_NPM_TOKEN }} - name: Extract release notes for this tag id: notes run: | TAG=${GITHUB_REF#refs/tags/} node ./scripts/extract-release-notes.mjs "$TAG" > release-notes.md echo "tag=$TAG" >> $GITHUB_OUTPUT - name: Create Gitea/GitHub release uses: softprops/action-gh-release@v2 with: tag_name: ${{ steps.notes.outputs.tag }} body_path: release-notes.md