1 name: CI
2
3 on:
4 push:
5 branches: [main, master]
6 pull_request:
7 branches: [main, master]
8
9 jobs:
10 # Validate dependencies and build
11 validate:
12 runs-on: ubuntu-latest
13 steps:
14 - name: Checkout code
15 uses: actions/checkout@v4
16
17 - name: Setup pnpm
18 uses: pnpm/action-setup@v4
19 with:
20 version: latest
21
22 - name: Setup Node.js
23 uses: actions/setup-node@v4
24 with:
25 node-version: 'latest'
26 cache: 'pnpm'
27
28 - name: Install dependencies
29 run: pnpm install --frozen-lockfile
30
31 - name: Run linting
32 run: pnpm lint
33
34 - name: Build project
35 run: pnpm build
36
37 # Auto-merge Dependabot PRs
38 auto-merge:
39 if: |
40 github.event_name == 'pull_request' &&
41 github.actor == 'dependabot[bot]' &&
42 contains(github.event.pull_request.labels.*.name, 'dependencies')
43 needs: validate
44 runs-on: ubuntu-latest
45 permissions:
46 contents: write
47 pull-requests: write
48 steps:
49 - name: Checkout code
50 uses: actions/checkout@v4
51
52 - name: Enable auto-merge for Dependabot PRs
53 run: |
54 gh pr merge --auto --squash "${{ github.event.pull_request.number }}"
55 env:
56 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}