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