Compare commits
1 Commits
master
...
hg-patch-r
Author | SHA1 | Date | |
---|---|---|---|
|
8e2723a060 |
9
.github/dependabot.yml
vendored
@ -1,9 +0,0 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "docker"
|
||||
directory: "tools/docker"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
commit-message:
|
||||
prefix: "deps"
|
||||
include: "scope"
|
30
.github/workflows/image-build.yml
vendored
@ -1,30 +0,0 @@
|
||||
name: Build and push docker image
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- tools/docker/Dockerfile
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-push:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Docker hub login
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: tools/docker
|
||||
push: true
|
||||
tags: ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}:latest
|
28
.github/workflows/release.yml
vendored
@ -1,28 +0,0 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- v*
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Create release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref_name }}
|
||||
release_name: ${{ github.ref_name }}
|
||||
draft: false
|
||||
prerelease: false
|
12
Makefile
@ -47,18 +47,6 @@ build-stage:
|
||||
@echo "Merging style files into the staging directory"
|
||||
@rsync -av $(STYLEDIR)/ $(STAGINGDIR)/style --quiet
|
||||
|
||||
# Prüfen auf Dateien mit Unterstrichen im Namen
|
||||
@echo "Checking for files containing underscores in $(STAGINGDIR)..."
|
||||
@files=$$(find $(STAGINGDIR) -type f -name '*_*'); \
|
||||
if [ -n "$$files" ]; then \
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \
|
||||
echo "WARNING: Found files with underscores:"; \
|
||||
echo " -> $$files"; \
|
||||
echo "These files are very likely to cause issues during the build process"; \
|
||||
echo "Remove or rename them to build the thesis safely"; \
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \
|
||||
fi
|
||||
|
||||
compile-output:
|
||||
# Bauen der Arbeit aus dem staging verzeichnis heraus
|
||||
@echo "Compiling the thesis into: $(OUTPUTFILE)"
|
||||
|
11
README.md
@ -57,11 +57,6 @@ $ sudo apt-get install git build-essential make-guile texlive-full pandoc pandoc
|
||||
|
||||
Bei einer englischen Diplomarbeit muss außerdem entweder das Paket `hunspell-en-gb` oder `hunspell-en-us` installiert werden.
|
||||
|
||||
|
||||
## Alternative platformen
|
||||
|
||||
Sie können die Diplomarbeit auch mit Hilfe von Docker oder Github WOrkflow bauen. Nähere Details dazu finden Sie im Verzeichnis `tools`.
|
||||
|
||||
# Grundlegende Schritte
|
||||
|
||||
## Manuelles erstellen einer Diplomarbeit
|
||||
@ -339,8 +334,14 @@ Bei speziellen Fragen zu diesem Vorgehen wenden Sie sich bitte an den Programmie
|
||||
|
||||
## Tipps & Tricks
|
||||
|
||||
**ES WIRD DRINGEND EMPFOHLEN DAS JEDER DIPLOMAND SEINE DIPLOMARBEIT LOKAL AUF SEINEM EIGENEN RECHNER BAUEN KANN**
|
||||
|
||||
### Generell
|
||||
* Man kann ToDo Blöcke in die DA einfügen indem man folgenden Block verwendet `\todo{Was noch zu tun wäre}`. Diese erscheinen dann als Textblasen am Rand der Arbeit.
|
||||
* Es werden alle `*.md` Files im Diplomarbeitsverzeichnis gebuildet. Das bedeutet das etwaige Readme Dateien auch eingefügt werden.
|
||||
* Am Ende jeder `*.md` Datei muss eine Leerzeile sein - sonst wird die nächste Überschrift nich korrekt dargestellt.
|
||||
* Überschriften werden nur bis zur 3. Ebene ins Inhaltsverzeichnis übernommen, und werden nur bis zur 5. Ebene bearbeitet.
|
||||
* Achtung beim Kopieren von Dateien aus Word oder anderen Unterlagen. Zuerst am besten in ein "Notepad" einfügen um etwaige Codierungsproblemen entegenzuwirken.
|
||||
|
||||
|
||||
### Versionsverwaltung
|
||||
|
77
action.yml
@ -1,77 +0,0 @@
|
||||
name: Build and send diploma thesis
|
||||
description: GitHub action to build and send a diploma thesis using the corresponding docker image from school HTL Leoben
|
||||
author: bitsneak
|
||||
branding:
|
||||
icon: mail
|
||||
color: yellow
|
||||
|
||||
inputs:
|
||||
thesis-path:
|
||||
description: The path to the filled out diploma thesis folder. If not set it will default to Diplomarbeit
|
||||
default: Diplomarbeit
|
||||
required: false
|
||||
smtp-server:
|
||||
description: The smtp server of your sending email
|
||||
required: true
|
||||
smtp-port:
|
||||
description: The smtp server port of your sending emai'
|
||||
required: true
|
||||
mail-address:
|
||||
description: The sending email address
|
||||
required: true
|
||||
mail-address-password:
|
||||
description: The password for the sending email address
|
||||
required: true
|
||||
teams-mail:
|
||||
description: The email address of the teams channel the diploma thesis is sent to
|
||||
required: true
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache Docker image
|
||||
id: cache-docker
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /tmp/.docker
|
||||
key: ${{ runner.os }}-docker-${{ hashFiles('**/HTLLE-DA-Vorlage/tools/docker/Dockerfile') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-docker-
|
||||
|
||||
- name: Create Docker cache directory
|
||||
if: steps.cache-docker.outputs.cache-hit != 'true'
|
||||
shell: bash
|
||||
run: mkdir -p /tmp/.docker
|
||||
|
||||
- name: Load cached Docker image
|
||||
if: steps.cache-docker.outputs.cache-hit == 'true'
|
||||
shell: bash
|
||||
run: docker load -i /tmp/.docker/image.tar
|
||||
|
||||
- name: Pull Docker image
|
||||
if: steps.cache-docker.outputs.cache-hit != 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}
|
||||
docker save ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }} -o /tmp/.docker/image.tar
|
||||
|
||||
- name: Build diploma thesis
|
||||
shell: bash
|
||||
run: docker run -v ${{ github.workspace }}/${{ inputs.thesis-path }}:/workspace ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY }}
|
||||
|
||||
- name: Send diploma thesis
|
||||
uses: dawidd6/action-send-mail@v4
|
||||
with:
|
||||
server_address: ${{ inputs.smtp-server }}
|
||||
server_port: ${{ inputs.smtp-port }}
|
||||
username: ${{ inputs.mail-address }}
|
||||
password: ${{ inputs.mail-address-password }}
|
||||
subject: "Diploma thesis"
|
||||
body: " "
|
||||
to: ${{ inputs.teams-mail }}
|
||||
from: ${{ inputs.mail-address }}
|
||||
attachments: ${{ inputs.thesis-path }}/diplomarbeit.pdf
|
@ -40,6 +40,7 @@ da-author:
|
||||
ki-tools:
|
||||
- name: Galileo AI
|
||||
zweck: Setendesign sowie UI/UX Design der App
|
||||
ki-tools:
|
||||
- name: Grammarly Go
|
||||
zweck: Stilverbesserung sowie Rechtschreibkorrekturen
|
||||
|
||||
@ -73,12 +74,7 @@ da-appendix:
|
||||
- abschnitt: Betreuungsprotokolle
|
||||
pdf-file: betreuungsprotokolle.pdf
|
||||
|
||||
# Diplomarbeitsvereinbarungen müssen zum Schluss sein
|
||||
|
||||
- abschnitt: Diplomatbeitsvereinbarung Englisch
|
||||
pdf-file: HTL-DA-Doku-EN.pdf
|
||||
|
||||
- abschnitt: Diplomatbeitsvereinbarung Deutsch
|
||||
pdf-file: HTL-DA-Doku-DE.pdf
|
||||
- abschnitt: Diplomatbeitsvereinbarung
|
||||
pdf-file: HTL-DA-Vereinbarung.pdf
|
||||
|
||||
---
|
||||
|
BIN
example/pdfs/HTL-DA-Vereinbarung.pdf
Normal file
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 9.8 KiB |
@ -1,7 +0,0 @@
|
||||
# docker tools
|
||||
|
||||
The provided Dockerfile allows one to create a docker container that builds the diploma thesis.
|
||||
|
||||
# github tools
|
||||
|
||||
The provided GitHub action allow one to build the diploma thesis in an automated workflow.
|
@ -1,33 +0,0 @@
|
||||
FROM ubuntu:20.04
|
||||
|
||||
# Set the environment variables
|
||||
ENV LANG=C.UTF-8 \
|
||||
LC_ALL=C.UTF-8 \
|
||||
DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Update the package list and install dependencies
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
build-essential \
|
||||
make \
|
||||
texlive-full \
|
||||
pandoc \
|
||||
pandoc-citeproc \
|
||||
tree \
|
||||
rsync \
|
||||
hunspell \
|
||||
hunspell-de-at \
|
||||
hunspell-en-us && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Set the working directory
|
||||
WORKDIR /workspace
|
||||
|
||||
# Copy the Diplomarbeit template repository clone command here
|
||||
# Uncomment the following line if the repository URL is provided
|
||||
# RUN git clone https://itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git /workspace/template
|
||||
|
||||
# Set entrypoint to bash
|
||||
ENTRYPOINT ["make", "pdf", "-C", "HTLLE-DA-Vorlage", "SOURCEDIR=/workspace"]
|
@ -1,32 +0,0 @@
|
||||
# docker container
|
||||
|
||||
The provided `Dockerfile` can be used to cerate a dockerized build environment where all depenencies are satisfied.
|
||||
|
||||
|
||||
## building the environment
|
||||
|
||||
In order to build a docker container (in this example it will be namend `diplomarbeit-env` just run the following command on a docker host (Testsd with docker 20.10.22)
|
||||
|
||||
~~~~
|
||||
$ docker build -t htlle-da-env .
|
||||
~~~~
|
||||
|
||||
This creates a container that contains all dependencies and expects to find your diplomathesis in mounted into the `/workspace` folder.
|
||||
|
||||
Alternatively the image can be pulled from dockerhub. See instructions here: https://hub.docker.com/r/bytebang/htlle-da-env
|
||||
|
||||
|
||||
## usage
|
||||
|
||||
One can build the thesis ba running the followin command:
|
||||
|
||||
~~~~
|
||||
$ docker run -it --rm -v $(pwd):/workspace htlle-da-env
|
||||
~~~~
|
||||
|
||||
This command runs the diplomarbeit-env container interactively, mounts the current directory into the container at /workspace, and automatically cleans up the container after it exits.
|
||||
|
||||
Errors and log messages are shown in the console, the file will be written back to the `/workspace` folder.
|
||||
This also works with _Docker Desktop_
|
||||
|
||||
![Docker Dektop settings](docker-desktop.png)
|
Before Width: | Height: | Size: 23 KiB |
@ -1,84 +0,0 @@
|
||||
# GitHub actions
|
||||
|
||||
The workflow `Build and send diploma thesis` allows the user to build the diploma thesis via a github workflow and send it to a Microsoft Teams channel.
|
||||
|
||||
## Create GitHub secrets
|
||||
|
||||
In your GitHub repository you first need to create the secrets the action needs. For that, go to the `Settings` Tab of your repository and under the section `Security` go to `Secrets and variables` and choose to the option `Actions`.
|
||||
|
||||
![Github repository settings](img/github-repo-settings.png)
|
||||
|
||||
Now click on the button `New repository secret` to create the GitHub action secrets.
|
||||
|
||||
![Github secret creation](img/github-action-secret-creation.png)
|
||||
|
||||
Here you enter the names of the secrets and their values corresponding to the following table. After inserting the contents of the new secret click `Add secret`.
|
||||
|
||||
| Name | Secret |
|
||||
|-|-|
|
||||
| MAIL | Your email address from which the diploma thesis should be sent from |
|
||||
| MAIL_PASSWORD | The password for MAIL |
|
||||
| SMTP_PORT | The SMTP port corresponding to SMTP_SERVER |
|
||||
| SMTP_SERVER | The SMTP Server for your email address |
|
||||
| TEAMS_MAIL | The Teams channel email from the channel the diploma thesis should be sent to |
|
||||
|
||||
Now it should look like this:
|
||||
|
||||
![Github action secret overview](img/github-action-secret-overview.png)
|
||||
|
||||
## Setup with published action
|
||||
|
||||
In the repo that should use this workflow create a file `.github/workflows/thesis.yml` and paste following contents into it. Do not forget to create the secrets.
|
||||
|
||||
```yml
|
||||
name: Build and send diploma thesis
|
||||
|
||||
on:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-and-send:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Build and send diploma thesis
|
||||
uses: bitsneak/TestingDABuild@v0.1.3
|
||||
with:
|
||||
# if the folder where the template is filled out has a different name than 'Diplomarbeit'
|
||||
#thesis-path: folder_name
|
||||
|
||||
smtp-server: ${{ secrets.SMTP_SERVER }}
|
||||
smtp-port: ${{ secrets.SMTP_PORT }}
|
||||
mail-address: ${{ secrets.MAIL }} # do not use school email address
|
||||
mail-address-password: ${{ secrets.MAIL_PASSWORD }} # when using gmail an app password must be used
|
||||
teams-mail: ${{ secrets.TEAMS_MAIL }}
|
||||
```
|
||||
|
||||
## Setup without published action
|
||||
|
||||
### Microsoft Teams
|
||||
|
||||
1. Create a new channel in your Team named `build`.
|
||||
2. Go to the channel settings of `build` and go to `Get email address`.
|
||||
|
||||
![Github Headbar](img/teams-channel-settings.png)
|
||||
|
||||
3. Copy the email address which is inside of the sharp brackets.
|
||||
|
||||
### GitHub
|
||||
|
||||
Create a folder `.github/workflows` in the root of your repository. You can now choose between `diploma-thesis-docker.yml` and `diploma-thesis-manual.yml` to paste into the newly created folder. The difference between them is, that the **-docker** uses the Docker image (for new diploma theses) and the **-manual** installs all the dependencies in the action itself (for old diploma theses).
|
||||
|
||||
### Notes
|
||||
|
||||
- Sending the diploma thesis, and therefore automated emails, using a school email address is not supported. Therefore use an email address that does not correspond to your school email address.
|
||||
- If you use Gmail as a sending email address, you have to generate an app password and use this instead of your normal password. [Manual](https://knowledge.workspace.google.com/kb/how-to-create-app-passwords-000009237)
|
||||
|
||||
## Credentials
|
||||
|
||||
- ducumentation
|
||||
- Schrempf Marko
|
||||
- code
|
||||
- Schrempf Marko
|
||||
- Kampl Maximilian
|
@ -1,56 +0,0 @@
|
||||
name: Build and send diploma thesis
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- Diplomarbeit/**
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-send::
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache Docker image
|
||||
id: cache-docker
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /tmp/.docker
|
||||
key: ${{ runner.os }}-docker-${{ hashFiles('**/HTLLE-DA-Vorlage/tools/docker/Dockerfile') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-docker-
|
||||
|
||||
- name: Create Docker cache directory
|
||||
if: steps.cache-docker.outputs.cache-hit != 'true'
|
||||
run: mkdir -p /tmp/.docker
|
||||
|
||||
- name: Load cached Docker image
|
||||
if: steps.cache-docker.outputs.cache-hit == 'true'
|
||||
run: docker load -i /tmp/.docker/image.tar
|
||||
|
||||
- name: Pull Docker image
|
||||
if: steps.cache-docker.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
docker pull bytebang/htlle-da-env
|
||||
docker save bytebang/htlle-da-env -o /tmp/.docker/image.tar
|
||||
|
||||
- name: Build diploma thesis
|
||||
run: docker run -v ${{ github.workspace }}/Diplomarbeit:/workspace bytebang/htlle-da-env
|
||||
|
||||
- name: Send diploma thesis
|
||||
uses: dawidd6/action-send-mail@v4
|
||||
with:
|
||||
server_address: ${{ secrets.SMTP_SERVER }}
|
||||
server_port: ${{ secrets.SMTP_PORT }}
|
||||
username: ${{ secrets.MAIL }}
|
||||
password: ${{ secrets.MAIL_PASSWORD }}
|
||||
subject: "Diploma thesis"
|
||||
body: " "
|
||||
to: ${{ secrets.TEAMS_MAIL }}
|
||||
from: ${{ secrets.MAIL }}
|
||||
attachments: Diplomarbeit/diplomarbeit.pdf
|
@ -1,39 +0,0 @@
|
||||
name: Build and send diploma thesis
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- Diplomarbeit/**
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-send::
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends git build-essential make-guile texlive-full pandoc pandoc-citeproc tree rsync hunspell hunspell-de-at hunspell-en-us
|
||||
|
||||
- name: Build diploma thesis
|
||||
run: |
|
||||
make pdf -C HTLLE-DA-Vorlage SOURCEDIR=../Diplomarbeit/
|
||||
|
||||
- name: Send diploma thesis
|
||||
uses: dawidd6/action-send-mail@v4
|
||||
with:
|
||||
server_address: ${{ secrets.SMTP_SERVER }}
|
||||
server_port: ${{ secrets.SMTP_PORT }}
|
||||
username: ${{ secrets.MAIL }}
|
||||
password: ${{ secrets.MAIL_PASSWORD }}
|
||||
subject: "Diploma thesis"
|
||||
body: " "
|
||||
to: ${{ secrets.TEAMS_MAIL }}
|
||||
from: ${{ secrets.MAIL }}
|
||||
attachments: Diplomarbeit/diplomarbeit.pdf
|
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 38 KiB |