Skip to content

Commit 0472f87

Browse files
committed
ci: Add merge queue workflow
1 parent 29b1a2e commit 0472f87

File tree

6 files changed

+77
-22
lines changed

6 files changed

+77
-22
lines changed

.github/workflows/merge-queue.yml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Merge Queue
2+
3+
on:
4+
# We use Trunk Merge Queues so we use this `push` event instead of the
5+
# `merge_queue` event, as per
6+
# https://docs.trunk.io/merge/set-up-trunk-merge#configure-merge-requirements
7+
push:
8+
branches:
9+
- trunk-merge/**
10+
11+
jobs:
12+
test:
13+
name: Run tests
14+
uses: ./.github/workflows/reusable-test.yml
15+
16+
examples:
17+
name: Build examples
18+
uses: ./.github/workflows/reusable-examples.yml

.github/workflows/pull-request.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Pull Request
2+
3+
on:
4+
pull_request:
5+
# Recommended by Graphite: https://graphite.dev/docs/github-configuration-guidelines#github-actions
6+
types: [opened, synchronize, reopened]
7+
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
test:
14+
name: Run tests
15+
uses: ./.github/workflows/reusable-test.yml
16+
17+
examples:
18+
name: Build examples
19+
uses: ./.github/workflows/reusable-examples.yml

.github/workflows/release.yml renamed to .github/workflows/push.yml

+17-5
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,32 @@
1-
name: "Create release"
1+
name: Push
22

33
on:
44
push:
5+
# Only ever run `push` events against protected branches, likely just `main`
56
branches:
67
- main
78

8-
# Release Please creates a Pull Request with changes to files
9-
permissions:
10-
contents: write
11-
pull-requests: write
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
1212

1313
jobs:
14+
test:
15+
name: Run tests
16+
uses: ./.github/workflows/reusable-test.yml
17+
18+
examples:
19+
name: Build examples
20+
uses: ./.github/workflows/reusable-examples.yml
21+
1422
release:
1523
runs-on: ubuntu-latest
1624
# Release Please is very fast, so we set a tiny timeout
1725
timeout-minutes: 1
26+
# Release Please creates a Pull Request with changes to files
27+
permissions:
28+
contents: write
29+
pull-requests: write
1830
steps:
1931
- name: Release Please
2032
uses: google-github-actions/release-please-action@a2d8d683f209466ee8c695cd994ae2cf08b1642d

.github/workflows/examples.yml renamed to .github/workflows/reusable-examples.yml

+9-11
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
name: "Build examples"
1+
# Our reusable workflow files only use the `workflow_call` event and don't
2+
# specify a `concurrency` limit so those things can be managed by the caller.
3+
name: Reusable examples workflow
24

3-
on: [push, pull_request]
4-
5-
concurrency:
6-
group: ${{ github.workflow }}-${{ github.ref }}
7-
cancel-in-progress: true
5+
on: [workflow_call]
86

97
jobs:
108
nextjs-13-pages-wrap:
11-
name: "Next.js 13 + Page Router + withArcjet"
9+
name: Next.js 13 + Page Router + withArcjet
1210
runs-on: ubuntu-latest
1311
steps:
1412
# Environment security
@@ -42,7 +40,7 @@ jobs:
4240
run: npm run build
4341

4442
nextjs-14-app-dir-rl:
45-
name: "Next.js 14 + App Router + Rate Limit"
43+
name: Next.js 14 + App Router + Rate Limit
4644
runs-on: ubuntu-latest
4745
steps:
4846
# Environment security
@@ -76,7 +74,7 @@ jobs:
7674
run: npm run build
7775

7876
nextjs-14-app-dir-validate-email:
79-
name: "Next.js 14 + App Router + Validate Email"
77+
name: Next.js 14 + App Router + Validate Email
8078
runs-on: ubuntu-latest
8179
steps:
8280
# Environment security
@@ -110,7 +108,7 @@ jobs:
110108
run: npm run build
111109

112110
nextjs-14-openai:
113-
name: "Next.js 14 + OpenAI"
111+
name: Next.js 14 + OpenAI
114112
runs-on: ubuntu-latest
115113
steps:
116114
# Environment security
@@ -144,7 +142,7 @@ jobs:
144142
run: npm run build
145143

146144
nextjs-14-pages-wrap:
147-
name: "Next.js 14 + Page Router + withArcjet"
145+
name: Next.js 14 + Page Router + withArcjet
148146
runs-on: ubuntu-latest
149147
steps:
150148
# Environment security

.github/workflows/test.yml renamed to .github/workflows/reusable-test.yml

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
name: "Run tests"
1+
# Our reusable workflow files only use the `workflow_call` event and don't
2+
# specify a `concurrency` limit so those things can be managed by the caller.
3+
name: Reusable test workflow
24

3-
on: [push, pull_request]
4-
5-
concurrency:
6-
group: ${{ github.workflow }}-${{ github.ref }}
7-
cancel-in-progress: true
5+
on: [workflow_call]
86

97
jobs:
108
test:

.trunk/trunk.yaml

+10
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,13 @@ actions:
5353
- trunk-check-pre-push
5454
- trunk-announce
5555
- trunk-upgrade-available
56+
merge:
57+
required_statuses:
58+
- Trunk Check
59+
- "Run tests / Run tests (OS: ubuntu-latest, Node: 18)"
60+
- "Run tests / Run tests (OS: ubuntu-latest, Node: 20)"
61+
- Build examples / Next.js 13 + Page Router + withArcjet
62+
- Build examples / Next.js 14 + App Router + Rate Limit
63+
- Build examples / Next.js 14 + App Router + Validate Email
64+
- Build examples / Next.js 14 + OpenAI
65+
- Build examples / Next.js 14 + Page Router + withArcjet

0 commit comments

Comments
 (0)