-
Notifications
You must be signed in to change notification settings - Fork 92
139 lines (121 loc) · 4.46 KB
/
push.yml
File metadata and controls
139 lines (121 loc) · 4.46 KB
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
131
132
133
134
135
136
137
138
139
name: Push
on:
push:
repository_dispatch:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Log Action Trigger Info
# https://docs.github.com/en/webhooks/webhook-events-and-payloads#repository_dispatch
run: |
echo "## Run Info" >> $GITHUB_STEP_SUMMARY
echo "Repository: ${{ github.event.repository.html_url }}" >> $GITHUB_STEP_SUMMARY
echo "Sender: ${{ github.event.sender.html_url }}" >> $GITHUB_STEP_SUMMARY
echo "Branch: \` ${{ github.event.branch }} \`" >> $GITHUB_STEP_SUMMARY
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v3
with:
version: 9
- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install
- name: Build
run: npm run build:ci
- name: Build Summary Header (Main Docs)
if: ${{ github.event_name == 'push' }}
run: |
echo "# Link Checker (Main Docs)" >> $GITHUB_STEP_SUMMARY
- id: lychee-main
name: Check for Broken Links (Main Docs)
uses: lycheeverse/lychee-action@v2.0.2
if: ${{ github.event_name == 'push' }}
with:
args: --verbose --exclude-all-private --no-progress --accept '200,429' --github-token '${{ secrets.LYCHEE_TOKEN }}' './build/site/satisfactory-modding/**/*.html'
# We want this to fail the build if there are broken links.
# Only running this check on event type `push` means subsites can still build even if main docs has broken links.
fail: true
- name: Build Summary Header (Subsites)
if: ${{ github.event_name == 'repository_dispatch' }}
run: |
echo "# Link Checker (Subsites)" >> $GITHUB_STEP_SUMMARY
- id: lychee-submods
name: Check for Broken Links (Subsites)
uses: lycheeverse/lychee-action@v2.0.2
if: ${{ github.event_name == 'repository_dispatch' }}
with:
# TODO there surely must be a better way to do this
# exclude the main docs dir from this check to avoid doing work twice
# maybe use separate lychee configs to use their exclude_path option?
args: --verbose --exclude-all-private --no-progress --accept '200,429' --github-token '${{ secrets.LYCHEE_TOKEN }}' './build/site/[!s][!a][!t][!i]*/**/*.html'
# Since we have no control over subsite doc contents, we can't let them fail the full build
# TODO: notify subsites when their docs have broken links
fail: false
image:
name: Image
runs-on: ubuntu-latest
needs:
- build
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
suffix=-${{ github.run_id }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
if: github.ref != 'refs/heads/Dev'
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Build and push Docker image (development)
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/Dev'
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
BUILD=build:ci
notify:
name: Notify
runs-on: ubuntu-latest
needs:
- build
- image
if: ${{ always() && contains(needs.*.result, 'failure') }}
steps:
- name: Notify Discord
uses: sarisia/actions-status-discord@v1
with:
title: "The docs failed to build :("
noprefix: true
description: "Place your bets on what random link broke this time."
color: 0xA50000
webhook: ${{ secrets.DISCORD_WEBHOOK }}