Continuing work on a build pipeline

This commit is contained in:
Jocelyn Badgley (Twipped) 2022-04-24 16:36:18 -07:00
parent 93743fc532
commit 2f44d2945a
9 changed files with 113 additions and 139 deletions

View file

@ -1,42 +1,23 @@
name: Export PDFs
name: Ensure Site Builds Cleanly
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
build-site:
runs-on: ubuntu-latest
steps:
# Get necessary packages for this image
- uses: actions/checkout@v3
- name: Install necessary packages
run: sudo apt-get install graphicsmagick -y
# Get latest chrome
- name: Get Chrome
run: |
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
- name: Install GraphicsMagick
run: sudo apt install graphicsmagick
# Check out the code
- name: Checkout
uses: actions/checkout@v3.0.0
# Get appropriate nodejs version
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: '14'
cache: 'npm'
# Restore packages and build
- name: Restore node_modules cache
uses: actions/cache@v2
with:
@ -45,7 +26,7 @@ jobs:
restore-keys: |
${{ runner.os }}-node_modules
- name: Restore Asset Caches
- name: Restore Asset Cache
uses: actions/cache@v2
with:
key: if-cache
@ -54,65 +35,76 @@ jobs:
./if-cache.json
./twitter-cache.json
- run: npm ci
- name: Run build
- name: Install node dependencies
run: npm ci
- name: Lint JS code
run: npm test
- name: Build site
run: npm run build
# Create a "dummy" http server inside the container
# on the output folder of the build
- name: Launch HTTP Server
uses: Eun/http-server-action@v1.0.3
- name: Upload Site Build
uses: actions/upload-artifact@v3
with:
directory: dist
name: site-html
path: |
dist
# Launch a headless chrome instance for exporting
- name: (EN) Get PDF from HTML
render-pdfs:
runs-on: ubuntu-latest
needs: build-site
steps:
- name: Install Chrome
run: |
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
- name: Download site build
uses: actions/download-artifact@v3
with:
name: site-html
- name: (EN) Generate PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/en.pdf" \
http://127.0.0.1:8080/en/printable/index.html
- name: (CN) Get PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/cn.pdf" \
http://127.0.0.1:8080/zh/printable/index.html
- name: (DE) Get PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/de.pdf" \
http://127.0.0.1:8080/de/druckbar/index.html
- name: (HU) Get PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/hu.pdf" \
http://127.0.0.1:8080/hu/nyomtathato/index.html
- name: (PL) Get PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/pl.pdf" \
http://127.0.0.1:8080/pl/do-druku/index.html
- name: (ZH) Get PDF from HTML
- name: (ZH) Generate PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/zh.pdf" \
http://127.0.0.1:8080/zh/printable/index.html
# Something is coming soon ;)
# - name: (FR) Get PDF from HTML
# run: |
# google-chrome --headless --print-to-pdf-no-header \
# --run-all-compositor-stages-before-draw --print-to-pdf="./dist/fr.pdf" \
# http://127.0.0.1:8080/fr/a-imprimer/index.html
- name: Upload PDF artifacts
- name: (DE) Generate PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/de.pdf" \
http://127.0.0.1:8080/de/druckbar/index.html
- name: (HU) Generate PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/hu.pdf" \
http://127.0.0.1:8080/hu/nyomtathato/index.html
- name: (PL) Generate PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/pl.pdf" \
http://127.0.0.1:8080/pl/do-druku/index.html
- name: (FR) Generate PDF from HTML
run: |
google-chrome --headless --print-to-pdf-no-header \
--run-all-compositor-stages-before-draw --print-to-pdf="./dist/fr.pdf" \
http://127.0.0.1:8080/fr/a-imprimer/index.html
- name: Upload PDFs
uses: actions/upload-artifact@v3
with:
name: pdfs
name: site-pdfs
path: |
dist/**/*.pdf

View file

@ -1,37 +0,0 @@
name: Ensure Site Builds Cleanly
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.5
- name: Install GraphicsMagick
run: sudo apt install graphicsmagick
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: '14'
cache: 'npm'
- name: Restore node_modules cache
uses: actions/cache@v2
with:
path: node_modules
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node_modules
- name: Restore Asset Caches
uses: actions/cache@v2
with:
key: if-cache
path: |
./if-cache
./if-cache.json
./twitter-cache.json
- run: npm i
- run: npm test
- run: npm run build

19
lang.yaml Normal file
View file

@ -0,0 +1,19 @@
- lang: en
name: English (EN)
pdf-source: /en/printable/index.html?pdf=true
- lang: fr
name: Français (FR)
pdf-source: /fr/printable/index.html?pdf=true
- lang: hu
name: Magyar (HU)
pdf-source: /hu/nyomtathato/index.html?pdf=true
- lang: pl
name: Polski (PL)
pdf-source: /pl/do-druku/index.html?pdf=true
- lang: zh
name: 中文 (ZH)
pdf-source: /zh/printable/index.html?pdf=true

View file

@ -2,7 +2,7 @@
<a href="/de/" class="top-nav-item dropdown-toggle" id="nav-gdb" data-toggle="dropdown" data-flip="false" aria-haspopup="true" aria-expanded="false">Die Gender Dysphorie Bibel</a>
<div class="dropdown-menu" aria-labelledby="nav-gdb">
<a href="/de/druckbar" class="{{#is meta.url '/de/druckbar' }}active {{/is}}dropdown-item">Alle ansehen</a>
<a href="/gdb-de.pdf" class="dropdown-item">PDF Herunterladen {{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<a href="/de.pdf" class="dropdown-item">PDF Herunterladen {{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<hr class="dropdown-divider">
<a href="/de/" class="{{#is meta.url '/de/index' }}active {{/is}}dropdown-item">Einleitung</a>
<a href="/de/was-ist-gender" class="{{#is meta.url '/de/was-ist-gender' }}active {{/is}}dropdown-item">Was ist Gender?</a>

View file

@ -2,7 +2,7 @@
<a href="/en/" class="top-nav-item dropdown-toggle" id="nav-gdb" data-toggle="dropdown" data-flip="false" aria-haspopup="true" aria-expanded="false">The Gender Dysphoria Bible</a>
<div class="dropdown-menu" aria-labelledby="nav-gdb">
<a href="/en/printable" class="{{#is meta.url '/en/printable' }}active {{/is}}dropdown-item">View All</a>
<a href="/gdb-en.pdf" class="dropdown-item">Download PDF {{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<a href="/en.pdf" class="dropdown-item">Download PDF {{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<hr class="dropdown-divider">
<a href="/en/" class="{{#is meta.url '/en/index' '/' }}active {{/is}}dropdown-item">Introduction</a>
<a href="/en/what-is-gender" class="{{#is meta.url '/en/what-is-gender' }}active {{/is}}dropdown-item">What is Gender?</a>

View file

@ -2,7 +2,7 @@
<a href="/fr/" class="top-nav-item dropdown-toggle" id="nav-gdb" data-toggle="dropdown" data-flip="false" aria-haspopup="true" aria-expanded="false">La Bible de la Dysphorie de Genre</a>
<div class="dropdown-menu" aria-labelledby="nav-gdb">
<a href="/fr/a-imprimer" class="{{#is meta.url '/fr/a-imprimer' }}active {{/is}}dropdown-item">Voir tous</a>
<a href="/gdb-fr.pdf" class="dropdown-item">Télécharger le PDF {{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<a href="/fr.pdf" class="dropdown-item">Télécharger le PDF {{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<hr class="dropdown-divider">
<a href="/fr/" class="{{#is meta.url '/fr/index' '/' }}active {{/is}}dropdown-item">Introduction</a>
<a href="/fr/qu-est-ce-que-le-genre" class="{{#is meta.url '/fr/qu-est-ce-que-le-genre' }}active {{/is}}dropdown-item">Qu'est-ce que le genre ?</a>

View file

@ -2,7 +2,7 @@
<a href="/hu/" class="top-nav-item dropdown-toggle" id="nav-gdb" data-toggle="dropdown" data-flip="false" aria-haspopup="true" aria-expanded="false">A Gender Diszfória Biblia</a>
<div class="dropdown-menu" aria-labelledby="nav-gdb">
<a href="/hu/nyomtathato" class="{{#is meta.url '/hu/nyomtathato' }}active {{/is}}dropdown-item">Minden megnyitása</a>
<a href="/gdb-hu.pdf" class="dropdown-item">PDF Letöltése {{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<a href="/hu.pdf" class="dropdown-item">PDF Letöltése {{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<hr class="dropdown-divider">
<a href="/hu/" class="{{#is meta.url '/hu/index' '/' }}active {{/is}}dropdown-item">Előszó</a>
<a href="/hu/mi-is-az-a-gender" class="{{#is meta.url '/hu/mi-is-az-a-gender' }}active {{/is}}dropdown-item">Mi is az a Gender?</a>

View file

@ -1,29 +1,29 @@
<a href="/pl/" class="top-nav-item dropdown-toggle" id="nav-gdb" data-toggle="dropdown" data-flip="false" aria-haspopup="true" aria-expanded="false">Biblia Dysforii Płciowej</a>
<div class="dropdown-menu" aria-labelledby="nav-gdb">
<a href="/pl/do-druku" class="{{#is meta.url '/pl/do-druku' }}active {{/is}}dropdown-item">Zobacz wszystko</a>
<a href="/gdb-pl.pdf" class="dropdown-item">Pobierz PDF {{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<hr class="dropdown-divider">
<a href="/pl/" class="{{#is meta.url '/pl/index' '/pl/' }}active {{/is}}dropdown-item">Wstęp</a>
<a href="/pl/czym-jest-gender" class="{{#is meta.url '/pl/czym-jest-gender' }}active {{/is}}dropdown-item">Czym jest gender?</a>
<a href="/pl/historia" class="{{#is meta.url '/pl/historia' }}active {{/is}}dropdown-item">Historia dysforii płciowej</a>
<a href="/pl/euforia" class="{{#is meta.url '/pl/euforia' }}active {{/is}}dropdown-item">Euforia płciowa</a>
<a href="/pl/dysforia-fizyczna" class="{{#is meta.url '/pl/dysforia-fizyczna' }}active {{/is}}dropdown-item">Dysforia fizyczna</a>
<a href="/pl/dysforia-biochemiczna" class="{{#is meta.url '/pl/dysforia-biochemiczna' }}active {{/is}}dropdown-item">Dysforia biochemiczna</a>
<a href="/pl/dysforia-spoleczna" class="{{#is meta.url '/pl/dysforia-spoleczna' }}active {{/is}}dropdown-item">Dysforia społeczna</a>
<a href="/pl/dysforia-roli-spolecznej" class="{{#is meta.url '/pl/dysforia-roli-spolecznej' }}active {{/is}}dropdown-item">Dysforia roli społecznej</a>
<a href="/pl/dysforia-seksualna" class="{{#is meta.url '/pl/dysforia-seksualna' }}active {{/is}}dropdown-item">Dysforia na tle seksualności</a>
<a href="/pl/dysforia-prezencji" class="{{#is meta.url '/pl/dysforia-prezencji' }}active {{/is}}dropdown-item">Dysforia prezencji</a>
<a href="/pl/dysforia-egzystencjalna" class="{{#is meta.url '/pl/dysforia-egzystencjalna' }}active {{/is}}dropdown-item">Dysforia egzystencjalna</a>
<a href="/pl/mechanizmy-obronne" class="{{#is meta.url '/pl/mechanizmy-obronne' }}active {{/is}}dropdown-item">Mechanizmy obronne</a>
<a href="/pl/syndrom-oszusta" class="{{#is meta.url '/pl/syndrom-oszusta' }}active {{/is}}dropdown-item">Syndrom oszusta</a>
<a href="/pl/czy-jestem-trans" class="{{#is meta.url '/pl/czy-jestem-trans' }}active {{/is}}dropdown-item">Czy jestem trans?</a>
<a href="/pl/diagnoza" class="{{#is meta.url '/pl/diagnoza' }}active {{/is}}dropdown-item">Diagnoza kliniczna</a>
<a href="/pl/leczenie" class="{{#is meta.url '/pl/leczenie' }}active {{/is}}dropdown-item">Leczenie dysforii płciowej</a>
<a href="/pl/przyczyny" class="{{#is meta.url '/pl/przyczyny' }}active {{/is}}dropdown-item">Przyczyny dysforii płciowej</a>
<a href="/pl/chromosomy" class="{{#is meta.url '/pl/chromosomy' }}active {{/is}}dropdown-item">Chromosomy</a>
<a href="/pl/hormony" class="{{#is meta.url '/pl/hormony' }}active {{/is}}dropdown-item">Jak działają hormony</a>
<a href="/pl/drugie-dojrzewanie-T" class="{{#is meta.url '/pl/drugie-dojrzewanie-T' }}active {{/is}}dropdown-item">Drugie dojrzewanie androgenowe od podstaw</a>
<a href="/pl/drugie-dojrzewanie-E" class="{{#is meta.url '/pl/drugie-dojrzewanie-E' }}active {{/is}}dropdown-item">Drugie dojrzewanie estrogenowe od podstaw</a>
<a href="/pl/podsumowanie" class="{{#is meta.url '/pl/podsumowanie' }}active {{/is}}dropdown-item">Podsumowanie</a>
</div>
<a href="/pl/" class="top-nav-item dropdown-toggle" id="nav-gdb" data-toggle="dropdown" data-flip="false" aria-haspopup="true" aria-expanded="false">Biblia Dysforii Płciowej</a>
<div class="dropdown-menu" aria-labelledby="nav-gdb">
<a href="/pl/do-druku" class="{{#is meta.url '/pl/do-druku' }}active {{/is}}dropdown-item">Zobacz wszystko</a>
<a href="/pl.pdf" class="dropdown-item">Pobierz PDF{{icon 'pdf' size="1em" style="vertical-align:middle;margin-bottom:3px;"}} </a>
<hr class="dropdown-divider">
<a href="/pl/" class="{{#is meta.url '/pl/index' '/pl/' }}active {{/is}}dropdown-item">Wstęp</a>
<a href="/pl/czym-jest-gender" class="{{#is meta.url '/pl/czym-jest-gender' }}active {{/is}}dropdown-item">Czym jest gender?</a>
<a href="/pl/historia" class="{{#is meta.url '/pl/historia' }}active {{/is}}dropdown-item">Historia dysforii płciowej</a>
<a href="/pl/euforia" class="{{#is meta.url '/pl/euforia' }}active {{/is}}dropdown-item">Euforia płciowa</a>
<a href="/pl/dysforia-fizyczna" class="{{#is meta.url '/pl/dysforia-fizyczna' }}active {{/is}}dropdown-item">Dysforia fizyczna</a>
<a href="/pl/dysforia-biochemiczna" class="{{#is meta.url '/pl/dysforia-biochemiczna' }}active {{/is}}dropdown-item">Dysforia biochemiczna</a>
<a href="/pl/dysforia-spoleczna" class="{{#is meta.url '/pl/dysforia-spoleczna' }}active {{/is}}dropdown-item">Dysforia społeczna</a>
<a href="/pl/dysforia-roli-spolecznej" class="{{#is meta.url '/pl/dysforia-roli-spolecznej' }}active {{/is}}dropdown-item">Dysforia roli społecznej</a>
<a href="/pl/dysforia-seksualna" class="{{#is meta.url '/pl/dysforia-seksualna' }}active {{/is}}dropdown-item">Dysforia na tle seksualności</a>
<a href="/pl/dysforia-prezencji" class="{{#is meta.url '/pl/dysforia-prezencji' }}active {{/is}}dropdown-item">Dysforia prezencji</a>
<a href="/pl/dysforia-egzystencjalna" class="{{#is meta.url '/pl/dysforia-egzystencjalna' }}active {{/is}}dropdown-item">Dysforia egzystencjalna</a>
<a href="/pl/mechanizmy-obronne" class="{{#is meta.url '/pl/mechanizmy-obronne' }}active {{/is}}dropdown-item">Mechanizmy obronne</a>
<a href="/pl/syndrom-oszusta" class="{{#is meta.url '/pl/syndrom-oszusta' }}active {{/is}}dropdown-item">Syndrom oszusta</a>
<a href="/pl/czy-jestem-trans" class="{{#is meta.url '/pl/czy-jestem-trans' }}active {{/is}}dropdown-item">Czy jestem trans?</a>
<a href="/pl/diagnoza" class="{{#is meta.url '/pl/diagnoza' }}active {{/is}}dropdown-item">Diagnoza kliniczna</a>
<a href="/pl/leczenie" class="{{#is meta.url '/pl/leczenie' }}active {{/is}}dropdown-item">Leczenie dysforii płciowej</a>
<a href="/pl/przyczyny" class="{{#is meta.url '/pl/przyczyny' }}active {{/is}}dropdown-item">Przyczyny dysforii płciowej</a>
<a href="/pl/chromosomy" class="{{#is meta.url '/pl/chromosomy' }}active {{/is}}dropdown-item">Chromosomy</a>
<a href="/pl/hormony" class="{{#is meta.url '/pl/hormony' }}active {{/is}}dropdown-item">Jak działają hormony</a>
<a href="/pl/drugie-dojrzewanie-T" class="{{#is meta.url '/pl/drugie-dojrzewanie-T' }}active {{/is}}dropdown-item">Drugie dojrzewanie androgenowe od podstaw</a>
<a href="/pl/drugie-dojrzewanie-E" class="{{#is meta.url '/pl/drugie-dojrzewanie-E' }}active {{/is}}dropdown-item">Drugie dojrzewanie estrogenowe od podstaw</a>
<a href="/pl/podsumowanie" class="{{#is meta.url '/pl/podsumowanie' }}active {{/is}}dropdown-item">Podsumowanie</a>
</div>

View file

@ -2,7 +2,7 @@
<a href="/zh/" class="top-nav-item dropdown-toggle" id="nav-gdb" data-toggle="dropdown" data-flip="false" aria-haspopup="true" aria-expanded="false">性别烦躁指南</a>
<div class="dropdown-menu" aria-labelledby="nav-gdb">
<a href="/zh/printable" class="{{#is meta.url '/zh/printable' }}active {{/is}}dropdown-item">查看全部</a>
<a href="/gdb-cn.pdf" class="{{#is meta.url '/zh/printable' }}active {{/is}}dropdown-item">下载PDF</a>
<a href="/cn.pdf" class="{{#is meta.url '/zh/printable' }}active {{/is}}dropdown-item">下载PDF</a>
<hr class="dropdown-divider">
<a href="/zh/" class="{{#is meta.url '/zh/index' '/' }}active {{/is}}dropdown-item">简介</a>
<a href="/zh/什么是性别" class="{{#is meta.url '/zh/什么是性别' }}active {{/is}}dropdown-item">什么是性别?</a>