-
Notifications
You must be signed in to change notification settings - Fork 31
130 lines (118 loc) · 3.45 KB
/
pull-request.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: pull request
on: [pull_request]
permissions:
contents: write
pull-requests: write
jobs:
build:
name: build
runs-on: ubuntu-latest
outputs:
cache_key: ${{ steps.cache_key.outputs.cache_key }}
steps:
- uses: actions/checkout@v3
- id: cache_key
run: echo "cache_key=${{ hashFiles('**/**') }}-v1" >> "$GITHUB_OUTPUT"
- uses: actions/cache@v3
id: cache
with:
path: .
key: ${{ steps.cache_key.outputs.cache_key }}
- if: steps.cache.outputs.cache-hit != true
uses: actions/setup-node@v3
with:
node-version: 18
- if: steps.cache.outputs.cache-hit != true
run: npm install
- if: steps.cache.outputs.cache-hit != true
env:
ELEVENTY_ENV: production
run: npm run build
redirects-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install node dependencies
run: npm install
- name: Redirect tests
run: npm run test:redirects
pa11y-scan:
# Pinned to 20.04 because pa11y-ci fails to run on 22.04
# See the discussion on https://github.com/pa11y/pa11y-ci/issues/198
# and https://github.com/pa11y/pa11y/issues/651
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Use Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install node dependencies
run: npm install
- name: Refresh assets
run: npm run assets:refresh
- name: Accessibility scan
run: npm run test:pa11y-ci
validate_html:
needs: [build]
name: validate html
runs-on: ubuntu-latest
steps:
- uses: actions/cache/restore@v3
with:
key: ${{ needs.build.outputs.cache_key }}
path: .
- uses: actions/setup-node@v3
with:
node-version: 18
- run: npm run test:html-validation
check_links:
needs: [build]
name: Check all links
runs-on: ubuntu-latest
steps:
- uses: actions/cache/restore@v3
with:
key: ${{ needs.build.outputs.cache_key }}
path: .
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Test all links
run: npm run test:links
lint:
name: Run linter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install node dependencies
run: npm install
- name: Run eslint
run: npm run lint
dependabot-auto-merge:
name: Dependabot auto-merge
needs: [build, redirects-tests, pa11y-scan, validate_html, check_links, lint] # ensures the other checks pass before running this job
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]'
steps:
- name: Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@v1
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Enable auto-merge for Dependabot PRs
if: steps.metadata.outputs.update-type == 'version-update:semver-patch'
run: |
gh pr review --approve
gh pr merge --auto --merge "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}