Skip to content

Commit

Permalink
Merge pull request #95 from Supergamer1337/auto-build
Browse files Browse the repository at this point in the history
Autobuilding of documents & publishing to GH pages.
  • Loading branch information
ide-1 authored Aug 24, 2023
2 parents 60bee53 + 99fc300 commit 6902c4b
Show file tree
Hide file tree
Showing 10 changed files with 340 additions and 74 deletions.
1 change: 0 additions & 1 deletion .dockerignore

This file was deleted.

165 changes: 165 additions & 0 deletions .github/workflows/build_all.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
name: Build documents

on:
workflow_call:

pull_request:
branches:
- master

jobs:
stadga:
uses: ./.github/workflows/build_document.yml
with:
document_name: stadga
latex_build_entry: stadga/stadga.tex

reglemente:
uses: ./.github/workflows/build_document.yml
with:
document_name: reglemente
latex_build_entry: reglemente/reglemente.tex

bokningsvillkor:
uses: ./.github/workflows/build_document.yml
with:
document_name: bokningsvillkor
latex_build_entry: bokningsvillkor/bokningsvillkor.tex

###### Policies ######
ekonomisk_policy:
uses: ./.github/workflows/build_document.yml
with:
document_name: ekonomisk_policy
latex_build_entry: policies/ekonomisk_policy/ekonomisk_policy.tex

lokalpolicy:
uses: ./.github/workflows/build_document.yml
with:
document_name: lokalpolicy
latex_build_entry: policies/lokalpolicy/lokalpolicy.tex

mjukvarupolicy:
uses: ./.github/workflows/build_document.yml
with:
document_name: mjukvarupolicy
latex_build_entry: policies/mjukvarupolicy/mjukvarupolicy.tex

kommunikationspolicy:
uses: ./.github/workflows/build_document.yml
with:
document_name: kommunikationspolicy
latex_build_entry: policies/kommunikationspolicy/kommunikationspolicy.tex

uppforandepolicy:
uses: ./.github/workflows/build_document.yml
with:
document_name: uppforandepolicy
latex_build_entry: policies/uppforandepolicy/uppforandepolicy.tex

miljopolicy:
uses: ./.github/workflows/build_document.yml
with:
document_name: miljopolicy
latex_build_entry: policies/miljopolicy/miljopolicy.tex

###### Mallar ######
askningsmall:
uses: ./.github/workflows/build_document.yml
with:
document_name: askningsmall
latex_build_entry: mallar/askningsmall/askningsmall.tex

motionsmall:
uses: ./.github/workflows/build_document.yml
with:
document_name: motionsmall
latex_build_entry: mallar/motionsmall/motionsmall.tex

intygsmall:
uses: ./.github/workflows/build_document.yml
with:
document_name: intygsmall
latex_build_entry: mallar/intygsmall/intygsmall.tex

hedersmedlemsmall:
uses: ./.github/workflows/build_document.yml
with:
document_name: hedersmedlemsmall
latex_build_entry: mallar/hedersmedlemsmall/hedersmedlemsmall.tex

beslutsmall:
uses: ./.github/workflows/build_document.yml
with:
document_name: beslutsmall
latex_build_entry: mallar/beslutsmall/beslutsmall.tex

namnlista:
uses: ./.github/workflows/build_document.yml
with:
document_name: namnlista
latex_build_entry: mallar/namnlista/namnlista.tex

nomineringsmall:
uses: ./.github/workflows/build_document.yml
with:
document_name: nomineringsmall
latex_build_entry: mallar/nomineringsmall/nomineringsmall.tex

###### Intresseföreningar ######
# Fick inte ha 8 i namnet :(
eight-bit-stadga:
uses: ./.github/workflows/build_document.yml
with:
document_name: 8-bit_stadga
latex_build_entry: intresseforeningar/8-bit/8-bit_stadga.tex

fikit-stadga:
uses: ./.github/workflows/build_document.yml
with:
document_name: FikIT_stadga
latex_build_entry: intresseforeningar/FikIT/FikIT_stadga.tex

###### Stöddokument ######
digital_moteshallning:
uses: ./.github/workflows/build_document.yml
with:
document_name: digital_moteshallning
latex_build_entry: stoddokument/digital_moteshallning.tex

ordlista:
uses: ./.github/workflows/build_document.yml
with:
document_name: ordlista
latex_build_entry: stoddokument/ordlista.tex

sektionsmoteshandbok:
uses: ./.github/workflows/build_document.yml
with:
document_name: sektionsmoteshandbok
latex_build_entry: stoddokument/sektionsmoteshandbok.tex

###### Hedersmedlemmar ######
anette:
uses: ./.github/workflows/build_document.yml
with:
document_name: anette
latex_build_entry: hedersmedlemmar/anette.tex

wolfgang:
uses: ./.github/workflows/build_document.yml
with:
document_name: wolfgang
latex_build_entry: hedersmedlemmar/wolfgang.tex

samuel:
uses: ./.github/workflows/build_document.yml
with:
document_name: samuel
latex_build_entry: hedersmedlemmar/samuel.tex

niklas:
uses: ./.github/workflows/build_document.yml
with:
document_name: niklas
latex_build_entry: hedersmedlemmar/niklas.tex
31 changes: 31 additions & 0 deletions .github/workflows/build_document.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Build PDF

on:
workflow_call:
inputs:
document_name:
required: true
type: string
latex_build_entry:
required: true
type: string

jobs:
build-document:
name: Build PDF
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Build latex
uses: xu-cheng/latex-action@v2
with:
root_file: ${{ inputs.latex_build_entry }}
args: -jobname=${{ inputs.document_name }}
latexmk_use_xelatex: true
- name: Upload PDF
uses: actions/upload-artifact@v3
with:
name: ${{ inputs.document_name }}
path: ${{ inputs.document_name }}.pdf
64 changes: 64 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Deploy .pdfs to GitHub Pages
on:
push:
branches:
- master

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: 'pages'
cancel-in-progress: false

jobs:
build:
uses: ./.github/workflows/build_all.yml

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3

- name: Setup Pages
uses: actions/configure-pages@v3

- name: Get pdfs
uses: actions/download-artifact@v3
with:
path: ./pdfs

- name: Flatten directory structure and remove empty directories
run: |
find ./pdfs -mindepth 2 -type f -print -exec mv {} ./pdfs \;
find ./pdfs -type d -empty -delete
- name: Create pdf index
run: |
echo "$(cat upper_template.html)" > pdfs/index.html
cd pdfs
for f in *.pdf; do
echo "<a href=\"$f\"><li>$f</li></a>" >> index.html
done
echo "</ul></body></html>" >> index.html
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: './pdfs'

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
13 changes: 0 additions & 13 deletions Dockerfile

This file was deleted.

45 changes: 22 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,7 @@

Dokument tillhörande Teknologsektionen Informationsteknik på Chalmers tekniska högskola. Det inkluderar bl.a. styrdokument och riktlinjer.

De publicerade dokumenten kan hittas på https://docs.chalmers.it/. Nya ändringar är inte alltid uppdaterade, eftersom de behöver läggas upp manuellt. Då finns alltid de senaste ändringarna här på GitHub.

## Bygga med Docker

Första gången projektet klonas med `git clone` så behöver submodulerna (bokningsvillkor) också hämtas med följande git kommand:

```
git submodule foreach --recursive git pull origin main
```

Sedan bör det vara enkelt att bygga en live-version av dokumenten i en Docker container. Efter det kan den publiceras på portainer. Byt ut `<tag>` mot något unikt, exempelvis dagens datum.

```
docker build -t docker.chalmers.it/dokument:<tag> .
```

## Publicera nya ändringar

Nya ändringar behöver manuellt byggas och publiceras, se ovanstående punkt. Det behöver göras av någon (förmodligen digIT) som har rättigheter att lägga upp och ändra Docker containers på portainer.

Instruktioner finns på https://docker.chalmers.it hur man ska tagga en container för att ladda upp den.

När imagen är uppladdad så ska dokument stacken i portainer byta till den nya imagen och byggas om.
De publicerade dokumenten kan hittas på https://docs.chalmers.it/. Nya ändringar är publiceras automatiskt när de pushas till master-branchen.

## Göra ändringar

Expand All @@ -35,3 +13,24 @@ För att göra ändringar finns två alternativ:

**OBS!**
Dessa dokument behöver också kompileras med XeTeX kompilatorn. (I overleaf kan man välja detta genom att klicka på Menu -> Compiler och sedan välja XeTeX i listan.)

### Lägga till nytt dokument

Om du har lagt till ett nytt dokument så måste du lägga till det i Makefile. Detta görs genom att lägga till en rad i Makefile som ser ut som följande. (Detta är för att vi använder oss av latexmk för att kompilera dokumenten. Och lokalt krävs detta.)

```makefile
TYP_AV_DOKUMENT: /VÄG/TILL/DOKUMENT/TYP
$(latexmk) $<VÄG/FRÅN/TYP/TILL/FIL.tex
# Om det är det enda dokumentet av denna typ (likt stadga eller reglemente) får du istället skriva:
$(latexmk) $<
```

Vidare, om du vill att ditt dokument skall läggas till som publicerat måste du gå in i `.github/workflows/build_all.yml` och lägga till följande (på rimlig plats, finns kommentarer som delar upp sektioner):

```yml
DOKUMENT_NAMN: # Får inte innehålla mellanslag, siffror eller specialtecken
uses: ./.github/workflows/build_document.yml
with:
document_name: DOKUMENT_NAMN # Detta är namnet på dokumentet, som blir namnet på pdf-filen
latex_build_entry: VÄG/TILL/FIL.tex # Detta är sökvägen till latex-filen som skall kompileras
```
14 changes: 0 additions & 14 deletions docker-compose.yml

This file was deleted.

17 changes: 0 additions & 17 deletions nginx.conf

This file was deleted.

13 changes: 7 additions & 6 deletions policies/ekonomisk_policy/ekonomisk_policy.tex
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,13 @@ \section{Mat under arrangemang}
Arbetsmat avser mat och dryck som förtärs av arbetande i samband med sektionsorganets verksamhet.
Beroende på arbetspassets längd får varje person bjudas på mat till ett värde av x kronor enligt nedanstående tabell.

\addvbuffer[\the\baselineskip]{\begin{tabular}{ l c c c}
\centering
Timmar & [0-3] & (3-6] & (6-$\infty$) \\
\hline
Kronor & 0 & 75 & 150 \\
\end{tabular}}
\begin{tabular}{ l c c c}
\centering
Timmar & [0-3] & (3-6] & (6-$\infty$) \\
\hline
Kronor & 0 & 75 & 150 \\
\end{tabular}
\vspace{\the\baselineskip}

Denna summa får inte överskrida 900 kr per person och verksamhetsår.

Expand Down
Loading

0 comments on commit 6902c4b

Please sign in to comment.