Merge pull request #400 from Rovetown/localisation-update-clean #1171
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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@v1 | |
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@v1 | |
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: Build Failure Notifications | |
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 }} |