forked from Hg/htlle-da-vorlage
Compare commits
No commits in common. "master" and "master" have entirely different histories.
9
.github/dependabot.yml
vendored
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
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
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
|
|
77
action.yml
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
|
|
@ -1,7 +1,3 @@
|
|||||||
# docker tools
|
# docker tools
|
||||||
|
|
||||||
The provided Dockerfile allows one to create a docker container that builds the diploma thesis.
|
The provided Dockerfile allows one to create a docker container taht builds the diploma thesis.
|
||||||
|
|
||||||
# github tools
|
|
||||||
|
|
||||||
The provided GitHub action allow one to build the diploma thesis in an automated workflow.
|
|
||||||
|
@ -1,84 +1,4 @@
|
|||||||
# GitHub actions
|
# Github tools
|
||||||
|
|
||||||
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.
|
The workflow `build-and-send.yaml` allows the user to build the diploma thesis via a github workflow.
|
||||||
|
Adapt it to meet your needs.
|
||||||
## 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
|
|
||||||
|
41
tools/github/build-and-send.yaml
Normal file
41
tools/github/build-and-send.yaml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
name: Build and Send Diplomathesis
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- Diplomarbeit/**
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install git build-essential make-guile texlive-full pandoc pandoc-citeproc tree rsync hunspell hunspell-de-at
|
||||||
|
|
||||||
|
|
||||||
|
- name: Build DA-Thesis
|
||||||
|
run: |
|
||||||
|
make pdf -C HTLLE-DA-Vorlage SOURCEDIR=../Diplomarbeit/
|
||||||
|
|
||||||
|
|
||||||
|
- name: Send File via Email
|
||||||
|
uses: dawidd6/action-send-mail@v2
|
||||||
|
with:
|
||||||
|
server_address: smtp.gmail.com
|
||||||
|
server_port: 587
|
||||||
|
username: ${{ secrets.GMAIL_MAIL }}
|
||||||
|
password: ${{ secrets.GMAIL_APP_PASSWORD }}
|
||||||
|
subject: "Diploma thesis"
|
||||||
|
body: " "
|
||||||
|
to: ${{ secrets.TEAMS_MAIL }}
|
||||||
|
from: ${{ secrets.GMAIL_MAIL }}
|
||||||
|
attachments: Diplomarbeit/diplomarbeit.pdf
|
@ -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
|
|
Binary file not shown.
Before Width: | Height: | Size: 17 KiB |
Binary file not shown.
Before Width: | Height: | Size: 26 KiB |
Binary file not shown.
Before Width: | Height: | Size: 96 KiB |
Binary file not shown.
Before Width: | Height: | Size: 38 KiB |
Loading…
Reference in New Issue
Block a user