Skip to content

Commit 7f43cb8

Browse files
author
Schuler Henry Martin (BhP/HRL3.2-SH1)
committed
Merge remote-tracking branch 'template/master'
2 parents aea7821 + 1938dfe commit 7f43cb8

File tree

2 files changed

+177
-1
lines changed

2 files changed

+177
-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: 92 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,90 @@ 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+
5. Aktiviere den Punkt "Enforce HTTPS"
156+
157+
Die URL des Deployments lautet: \<user\>.github.io/\<repo-name\>
158+
159+
Anschließend kann das automatische Deployment in der Datei [new_releases.yml](.github/workflows/new_release.yml) angepasst werden.
160+
1. Anpassen der anzuzeigenden HTML-Datei
161+
```yml
162+
- name: Create build destination
163+
run: |
164+
mkdir public
165+
cat > public/index.html <<EOL
166+
<!doctype html>
167+
<html>
168+
<head>
169+
<title>GitHub Pages deployed!</title>
170+
</head>
171+
<body>
172+
<div style="position: absolute; left: 0; right: 0; bottom: 0; top: 0;">
173+
<iframe src="./main.pdf" width="100%" height="100%" frameborder="0">
174+
</iframe>
175+
</div>
176+
</body>
177+
</html>
178+
EOL
179+
```
180+
> Standardmäßig zeigt GitHub Pages unter Verwendung dieses HTML-Codes die PDF-Datei "main.pdf".
181+
> 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.
182+
183+
> Alternativ kannst du an dieser Stelle auch deinen eigenen HTML-Code einsetzen.
184+
> Bedenke: Ohne Anpassungen des Deployments steht dir lediglich die generierte PDF-Datei im Repository zur Verfügung.
185+
2. Verbinden des Deployment mit einer eigenen Domain
186+
```yml
187+
- name: Deploy to GitHub Pages
188+
if: success()
189+
uses: crazy-max/ghaction-github-pages@v3
190+
with:
191+
target_branch: gh-pages
192+
build_dir: public
193+
env:
194+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
195+
```
196+
> Unter dem Schlüssel "with:" kann neben der target_branch auch mittels des Keywords "fqdn:" die Zieldomain angegeben werden.
197+
```yml
198+
with:
199+
fqdn: my-domain-name.de
200+
```
201+
> 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)
202+
203+
> Für weitere Personalisierungen: [crazy-max/ghaction-github-pages@v3 Dokumentation](https://github.com/crazy-max/ghaction-github-pages/tree/dev)
204+
114205
## Feedback/Issues
115206
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.
116207
117-
## Autor
208+
## Author
118209
* [Henry Schuler](https://henryschuler.de) / [github](https://github.com/schuler-henry) / [E-Mail](mailto:contact@henryschuler.de?subject=[GitHub]%20dhbw-latex-template)
119210
120211
## [LICENSE](LICENSE)

0 commit comments

Comments
 (0)