Skip to content

Commit 3e237db

Browse files
Merge pull request #15 from schuler-henry/14-github-action-builddeploy
14 GitHub action build/deploy
2 parents e21bf52 + 3a21ec7 commit 3e237db

File tree

2 files changed

+174
-1
lines changed

2 files changed

+174
-1
lines changed

.github/workflows/new_release.yml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# create a release and deploy the pdf to GitHub Pages
2+
3+
name: New Release
4+
5+
on:
6+
push:
7+
tags:
8+
- v*.*.*
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Set up Git repository
15+
uses: actions/checkout@v3
16+
- name: Compile LaTeX document
17+
uses: xu-cheng/latex-action@v2
18+
with:
19+
root_file: "*.tex"
20+
glob_root_file: true
21+
- name: Upload PDF file
22+
uses: actions/upload-artifact@v3
23+
with:
24+
name: PDF
25+
path: "*.pdf"
26+
27+
release:
28+
runs-on: ubuntu-latest
29+
needs: [build]
30+
31+
steps:
32+
- name: Download build
33+
uses: actions/download-artifact@v3
34+
with:
35+
name: PDF
36+
37+
- name: Create release
38+
uses: "marvinpinto/action-automatic-releases@latest"
39+
with:
40+
repo_token: "${{ secrets.GITHUB_TOKEN }}"
41+
prerelease: false
42+
files: |
43+
*.pdf
44+
45+
publish:
46+
runs-on: ubuntu-latest
47+
needs: [build]
48+
49+
steps:
50+
- name: Create build destination
51+
run: |
52+
mkdir public
53+
cat > public/index.html <<EOL
54+
<!doctype html>
55+
<html>
56+
<head>
57+
<title>GitHub Pages deployed!</title>
58+
</head>
59+
<body>
60+
<div style="position: absolute; left: 0; right: 0; bottom: 0; top: 0;">
61+
<iframe src="./main.pdf" width="100%" height="100%" frameborder="0">
62+
</iframe>
63+
</div>
64+
</body>
65+
</html>
66+
EOL
67+
68+
- name: Download build
69+
uses: actions/download-artifact@v3
70+
with:
71+
name: PDF
72+
path: public
73+
74+
- name: View downloaded artifacts
75+
run: ls -R
76+
working-directory: public
77+
78+
- name: Deploy to GitHub Pages
79+
if: success()
80+
uses: crazy-max/ghaction-github-pages@v3
81+
with:
82+
target_branch: gh-pages
83+
build_dir: public
84+
env:
85+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

README.md

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@ Die Vorlage orientiert sich aber an den Vorschriften der Fakultät Technik an de
44

55
Die Vorlage ist universal einsetzbar für T1000, T2000, T3000, die Studienarbeit, die Bachelorarbeit, sowie sonstige Projekte während der Theorie-Semester.
66

7+
## Overview
8+
- [dhbw-latex-template](#dhbw-latex-template)
9+
- [Overview](#overview)
10+
- [How to use](#how-to-use)
11+
- [Release and Deploy](#release-and-deploy)
12+
- [Release](#release)
13+
- [Deployment](#deployment)
14+
- [Feedback/Issues](#feedbackissues)
15+
- [Author](#author)
16+
- [LICENSE](#license)
17+
718
## How to use
819
1. Installiere einen beliebigen Latex-Editor (getestet unter: [VS-Code-Extension](https://github.com/James-Yu/LaTeX-Workshop/wiki/Install))
920
1. Klone das Repo auf deine Maschine
@@ -111,10 +122,87 @@ Die Vorlage ist universal einsetzbar für T1000, T2000, T3000, die Studienarbeit
111122
> Auch die getroffenen Einstellungen in [main.tex](main.tex) müssen nicht bearbeitet werden.
112123
> Eigene Bibliotheken und Definitionen können hier aber eingebunden werden (Bestehende Module könnten dadurch jedoch beeinflusst werden).
113124

125+
## Release and Deploy
126+
Die folgenden Automatisierungen sind in der Datei [new_release.yml](.github/workflows/new_release.yml) definiert und beschreiben [GitHub Actions](https://github.com/features/actions).
127+
128+
Um automatisch einen Release zu erstellen, muss ein Tag im Format v\*.\*.\* erstellt und auf das Repository gepusht werden.
129+
Dies wird mit den Folgenden Befehlen erreicht:
130+
1. Tag erstellen
131+
```sh
132+
git tag v*.*.*
133+
```
134+
2. Tag pushen
135+
```sh
136+
git push origin v*.*.*
137+
```
138+
139+
### Release
140+
Die GitHub Action [xu-cheng/latex-action@v2](https://github.com/marketplace/actions/github-action-for-latex) baut zunächst die PDF aus den Latex-Dokumenten des Repository.
141+
142+
Anschließend erstellt die GitHub Action [marvinpinto/action-automatic-releases@latest](https://github.com/marvinpinto/action-automatic-releases) den Release unter Einbindung der generierten PDF-Datei.
143+
Zusätzlich wird ein Changelog generiert.
144+
145+
### Deployment
146+
Für das automatische Deployment mit [GitHub Pages](https://pages.github.com) wird die GitHub Action [crazy-max/ghaction-github-pages@v3](https://github.com/crazy-max/ghaction-github-pages/tree/dev) verwendet.
147+
148+
149+
Zunächst muss GitHub Pages in den Repository-Einstellungen konfiguriert werden.
150+
Dazu müssen die Folgenden Schritte ausgeführt werden:
151+
1. Öffne die Einstellungen des Repository
152+
2. Wähle im Optionsmenü den Punkt "Pages"
153+
3. Wähle als Quelle "Deploy from branch"
154+
4. Wähle als Branch-Namen "gh-pages" im "/root" Verzeichnis
155+
156+
Anschließend kann das automatische Deployment in der Datei [new_releases.yml](.github/workflows/new_release.yml) angepasst werden.
157+
1. Anpassen der anzuzeigenden HTML-Datei
158+
```yml
159+
- name: Create build destination
160+
run: |
161+
mkdir public
162+
cat > public/index.html <<EOL
163+
<!doctype html>
164+
<html>
165+
<head>
166+
<title>GitHub Pages deployed!</title>
167+
</head>
168+
<body>
169+
<div style="position: absolute; left: 0; right: 0; bottom: 0; top: 0;">
170+
<iframe src="./main.pdf" width="100%" height="100%" frameborder="0">
171+
</iframe>
172+
</div>
173+
</body>
174+
</html>
175+
EOL
176+
```
177+
> Standardmäßig zeigt GitHub Pages unter Verwendung dieses HTML-Codes die PDF-Datei "main.pdf".
178+
> Solltest du den Namen deiner [main.tex](main.tex) Datei verändert haben, musst du hier auch den Namen in den kompilierten Namen der PDF ändern.
179+
180+
> Alternativ kannst du an dieser Stelle auch deinen eigenen HTML-Code einsetzen.
181+
> Bedenke: Ohne Anpassungen des Deployments steht dir lediglich die generierte PDF-Datei im Repository zur Verfügung.
182+
2. Verbinden des Deployment mit einer eigenen Domain
183+
```yml
184+
- name: Deploy to GitHub Pages
185+
if: success()
186+
uses: crazy-max/ghaction-github-pages@v3
187+
with:
188+
target_branch: gh-pages
189+
build_dir: public
190+
env:
191+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
192+
```
193+
> Unter dem Schlüssel "with:" kann neben der target_branch auch mittels des Keywords "fqdn:" die Zieldomain angegeben werden.
194+
```yml
195+
with:
196+
fqdn: my-domain-name.de
197+
```
198+
> Weitere Informationen zum Konfigurieren einer benutzerdefinierten Domain (Pages + Provider): [GitHub Docs](https://docs.github.com/de/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site)
199+
200+
> Für weitere Personalisierungen: [crazy-max/ghaction-github-pages@v3 Dokumentation](https://github.com/crazy-max/ghaction-github-pages/tree/dev)
201+
114202
## Feedback/Issues
115203
Sollten Sie Fehler in der Latex Vorlage finden oder Anregungen zur Verbesserung haben, können Sie diese in Form eines Issue unter dem [Issue-Tab](https://github.com/schuler-henry/dhbw-latex-template/issues) einreichen.
116204
117-
## Autor
205+
## Author
118206
* [Henry Schuler](https://henryschuler.de) / [github](https://github.com/schuler-henry) / [E-Mail](mailto:contact@henryschuler.de?subject=[GitHub]%20dhbw-latex-template)
119207
120208
## [LICENSE](LICENSE)

0 commit comments

Comments
 (0)