forked from Hg/htlle-da-vorlage
Merge branch 'master' of lcle/HTLLE-DA-Vorlage_Jenkinsfile into master
Änderungen an der DA Vorlage damit diese automatisch auf unserem GIT Server gebaut werden kann. Danke an lcle !
This commit is contained in:
commit
bdb5d0d36b
125
Jenkinsfile
vendored
Normal file
125
Jenkinsfile
vendored
Normal file
@ -0,0 +1,125 @@
|
||||
pipeline {
|
||||
agent { label 'docker-lehrer' }
|
||||
|
||||
options {
|
||||
buildDiscarder(logRotator(artifactNumToKeepStr: '0'))
|
||||
skipDefaultCheckout(true)
|
||||
}
|
||||
|
||||
parameters {
|
||||
string(
|
||||
name: 'REPOSITORY',
|
||||
defaultValue: 'itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git',
|
||||
description: 'URL git-Repository DA//'
|
||||
)
|
||||
string(
|
||||
name: 'GIT_PATH',
|
||||
defaultValue: './',
|
||||
description: "Pfad zur DA in git (z.B.: dipl/)"
|
||||
)
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout DA') {
|
||||
steps {
|
||||
cleanWs()
|
||||
script {
|
||||
// add https to the url if not present
|
||||
env.REPOSITORY = params.REPOSITORY
|
||||
if(!env.REPOSITORY.startsWith("https://")) {
|
||||
env.REPOSITORY = "https://" + env.REPOSITORY
|
||||
}
|
||||
// sanitize git dir path
|
||||
env.GIT_PATH = params.GIT_PATH
|
||||
if(!env.GIT_PATH.endsWith("/")) {
|
||||
env.GIT_PATH += "/"
|
||||
}
|
||||
if(env.GIT_PATH.startsWith("/")) {
|
||||
env.GIT_PATH = env.GIT_PATH.substring(1)
|
||||
}
|
||||
if(env.GIT_PATH.startsWith("~/")) {
|
||||
env.GIT_PATH = env.GIT_PATH.substring(2, (env.GIT_PATH.length() - 1))
|
||||
}
|
||||
}
|
||||
// checkout out the repository including submodules
|
||||
// builduser acc used in git
|
||||
checkout([
|
||||
$class: 'GitSCM',
|
||||
branches: [[name: '*/master']],
|
||||
doGenerateSubmoduleConfigurations: false,
|
||||
extensions: [[
|
||||
$class: 'SubmoduleOption',
|
||||
disableSubmodules: false,
|
||||
parentCredentials: true,
|
||||
recursiveSubmodules: true,
|
||||
shallow: false,
|
||||
reference: '',
|
||||
trackingSubmodules: false
|
||||
]],
|
||||
submoduleCfg: [],
|
||||
userRemoteConfigs: [[
|
||||
credentialsId: 'd65d903b-21ee-4055-98aa-ef82a903e287',
|
||||
url: "${env.REPOSITORY}"
|
||||
]]
|
||||
])
|
||||
}
|
||||
}
|
||||
stage('Build DA') {
|
||||
when {
|
||||
expression { 'https://itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git' != env.REPOSITORY }
|
||||
}
|
||||
steps {
|
||||
dir(env.GIT_PATH) {
|
||||
sh 'make pdf -C HTLLE-DA-Vorlage SOURCEDIR=$(pwd)'
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Build only template') {
|
||||
when {
|
||||
expression { 'https://itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git' == env.REPOSITORY }
|
||||
}
|
||||
steps {
|
||||
// build the template with the examples from DA point of view
|
||||
sh '''#!/bin/bash
|
||||
mkdir HTLLE-DA-Vorlage
|
||||
ls | grep -v HTLLE-DA-Vorlage | xargs mv -t HTLLE-DA-Vorlage
|
||||
cp -rv HTLLE-DA-Vorlage/example/. .
|
||||
make pdf -C HTLLE-DA-Vorlage SOURCEDIR=$(pwd)
|
||||
'''
|
||||
}
|
||||
}
|
||||
stage('Test if diplomarbeit.pdf exists') {
|
||||
steps {
|
||||
dir(env.GIT_PATH) {
|
||||
sh "test -f diplomarbeit.pdf"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
env.RECIPIENTS = ""
|
||||
// get mail addresses
|
||||
metadata = readFile(file: "${env.GIT_PATH}metadata.yaml").split('\n').each { line ->
|
||||
if(line.contains("- build-notification:")) {
|
||||
// remove yaml comments
|
||||
if(line.contains('#')) {
|
||||
line = line.substring(0, line.indexOf('#'))
|
||||
}
|
||||
def mailMatch = line =~ /[_A-Za-z0-9-]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})/
|
||||
if(mailMatch) {
|
||||
env.RECIPIENTS += (mailMatch[0][0] + ";")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dir(env.GIT_PATH) {
|
||||
emailext attachmentsPattern: "diplomarbeit.pdf*",
|
||||
to: "${env.RECIPIENTS}",
|
||||
subject: "[${currentBuild.currentResult}] Diplomarbeit Build #${env.BUILD_NUMBER}",
|
||||
body: "Job ${env.JOB_NAME}: ${env.JOB_URL}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
78
README.md
78
README.md
@ -22,6 +22,8 @@ Wenn Sie Änderungen an diesem Template wünschen, dann erstellen Sie bitte ein
|
||||
|
||||
Damit die DA gebaut werden kann müssen mehrere Programme installiert sein. Theoretisch funktioniert das auch mit 'purem' Windows, aber einfacher ist es die Arbeit mit Hilfe von Linux zu erstellen. Aus diesem Grund finden Sie hier nur die Anweisungen die sich auf einem **Ubuntu 18.04 LTS** beziehen.
|
||||
|
||||
Wenn der HTL eigene GIT-Server verwendet wird, brauchen Sie die Tools nicht unbedingt installieren und Sie können sich die Arbeit als PDF per E-Mail zuschicken lassen. Mehr dazu weiter [unten](#remote)
|
||||
|
||||
## Windows
|
||||
|
||||
Wenn man Windows 10 als primäres Betriebssystem verwendet hat man zwei Möglichkeiten um zu einer Linux Umgebung zu kommen:
|
||||
@ -93,7 +95,7 @@ Wenn Sie ein lokales Repo haben, dann wird dieses Repository als [git-submodule]
|
||||
~/Diplomarbeit$ git submodule add https://itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git
|
||||
```
|
||||
|
||||
Der erste Befehl verhindert dass Änderungen an Berechtigungen (wie sie WSL im Hintegrund durchführt) dazu führen dass die Datei als modifiziert angesehen wird. Der zweite Befehl holt das Submodul dazu.
|
||||
Der erste Befehl verhindert dass Änderungen an Berechtigungen (wie sie WSL im Hintergrund durchführt) dazu führen dass die Datei als modifiziert angesehen wird. Der zweite Befehl holt das Submodul dazu.
|
||||
|
||||
Falls das Template durch hg geändert wird können Sie mit Hilfe des Befehls `git submodule update --remote` ihre derzeitige Version durch die jeweils aktuellste Version des Templates ersetzen. Damit die Änderungen sichtbar werden müssen Sie natürlich die Diplomarbeit vorher neu bauen.
|
||||
|
||||
@ -223,6 +225,10 @@ da-appendix:
|
||||
|
||||
- abschnitt: Diplomatbeitsvereinbarung
|
||||
pdf-file: HTL-DA-Vereinbarung.pdf
|
||||
|
||||
da-build-properties:
|
||||
- build-notification: Diplomarbeit - DA_2021_Thema <269bc6a5.O365.htl-leoben.at@emea.teams.ms>
|
||||
- build-notification: mytesms@adress.com
|
||||
---
|
||||
```
|
||||
|
||||
@ -238,20 +244,82 @@ Um das Zusammensuchen der Quellenangaben für Bücher zu vereinfachen kann man i
|
||||
|
||||
### Bauen der Diplomarbeit als PDF Datei
|
||||
|
||||
#### Lokal
|
||||
Damit das PDF für die Diplomarbeit erstellt wird muss (aus Ihrem Basisverzeichnis heraus) folgender Befehl abgesetzt werden:
|
||||
|
||||
```
|
||||
make pdf -C HTLLE-DA-Vorlage INPUTDIR=$(pwd)
|
||||
make pdf -C HTLLE-DA-Vorlage SOURCEDIR=$(pwd)
|
||||
```
|
||||
|
||||
Danach erscheint (sofern alles gut geht) die Datei `HTLLE-DA-Vorlage/output/diplomarbeit.pdf`. Sollte die Datei bereits von einem früheren Lauf her existiert haben wird sie einfach überschrieben. Sollte die Arbeit nicht erfolgreich gebaut werden können, dann kann in der Datei `pandoc.log` der Grund dafür heruasgefunden werden.
|
||||
Danach erscheint (sofern alles gut geht) die Datei `HTLLE-DA-Vorlage/output/diplomarbeit.pdf`. Sollte die Datei bereits von einem früheren Lauf her existiert haben wird sie einfach überschrieben. Sollte die Arbeit nicht erfolgreich gebaut werden können, dann kann in der Datei `pandoc.log` der Grund dafür herausgefunden werden.
|
||||
|
||||
Damit Sie nicht immer den gesamten Befehl schreiben müssen können Sie sich auch einen Alias setzen:
|
||||
|
||||
```
|
||||
alias da="make pdf -C HTLLE-DA-Vorlage INPUTDIR=$(pwd)"
|
||||
alias da="make pdf -C HTLLE-DA-Vorlage SOURCEDIR=$(pwd)"
|
||||
```
|
||||
Damit beschränkt sich Ihre eigentliche Arbeit darauf, die Markdoen Files zu editieren (nicht veressen zu speichern) und anschließend den neuen Alias `da` aufzurufen. Danach haben Sie immer die neuste Diplomarbeit gebaut.
|
||||
Damit beschränkt sich Ihre eigentliche Arbeit darauf, die Markdown Files zu editieren (nicht veressen zu speichern) und anschließend den neuen Alias `da` aufzurufen. Danach haben Sie immer die neuste Diplomarbeit gebaut.
|
||||
|
||||
#### Remote
|
||||
Sollten Sie die notwendigen Tools (pandoc, LaTeX, etc.) nicht lokal installieren wollen und Sie haben Ihre Diplomarbeit am GIT-Server der HTL versioniert, dann können Sie Ihre PDF auch am [Jenkins](https://itsp.htl-leoben.at/ci) bauen und sich per E-Mail zuschicken lassen. Es wird dabei immer das aktuelle Template verwendet.
|
||||
|
||||
Öffnen Sie dazu den [Jenkins-Job](https://itsp.htl-leoben.at/ci/job/HTLLE-Diplomarbeit/build?delay=0sec) und melden Sie sich ggf. mit Ihren Benutzerdaten (z.B.: `1911wit00`) an.
|
||||
|
||||
Für `REPOSITORY` tragen Sie bitte Ihre Repository-URL (z.B: `https://itsp.htl-leoben.at/git/1911wit00/Diplomarbeit.git`) und für `GIT_PATH` ggf. den Unterordner, in dem sich Ihre Diplomarbeit auf GIT befindet (z.B.: `diplomarbeit/`), ein.
|
||||
|
||||
Beispiel: `GIT_PATH` ist `"text"`
|
||||
```
|
||||
$ tree ~/Diplomarbeit
|
||||
.
|
||||
├── source
|
||||
└── text
|
||||
├── 10-einleitung.md
|
||||
├── 20-zielsetzung.md
|
||||
├── 30-ausarbeitungen.md
|
||||
├── 31-ausarbeitung_schueler1.md
|
||||
├── 32-ausarbeitung_schueler2.md
|
||||
├── 40-zusammenfassung.md
|
||||
├── HTLLE-DA-Vorlage
|
||||
│ ├── ... Inhalte aus der DA Vorlage
|
||||
│ └── ... wurden hier ausgeblendet
|
||||
├── img
|
||||
│ └── graph.png
|
||||
├── literatur.bib
|
||||
├── metadata.yaml
|
||||
└── pdfs
|
||||
├── HTL-DA-Vereinbarung.pdf
|
||||
├── README
|
||||
├── begleitprotokolle.pdf
|
||||
├── pandoc-manual.pdf
|
||||
└── projekthandbuch.pdf
|
||||
```
|
||||
|
||||
Beispiel: `GIT_PATH` ist default `"./"`
|
||||
```
|
||||
$ tree ~/Diplomarbeit
|
||||
.
|
||||
├── 10-einleitung.md
|
||||
├── 20-zielsetzung.md
|
||||
├── 30-ausarbeitungen.md
|
||||
├── 31-ausarbeitung_schueler1.md
|
||||
├── 32-ausarbeitung_schueler2.md
|
||||
├── 40-zusammenfassung.md
|
||||
├── HTLLE-DA-Vorlage
|
||||
│ ├── ... Inhalte aus der DA Vorlage
|
||||
│ └── ... wurden hier ausgeblendet
|
||||
├── img
|
||||
│ └── graph.png
|
||||
├── literatur.bib
|
||||
├── metadata.yaml
|
||||
└── pdfs
|
||||
├── HTL-DA-Vereinbarung.pdf
|
||||
├── README
|
||||
├── begleitprotokolle.pdf
|
||||
├── pandoc-manual.pdf
|
||||
└── projekthandbuch.pdf
|
||||
```
|
||||
|
||||
**Wichtig:** Das fertige PDF wird an die E-Mail Adressen aus `metadata.yaml` verschickt! Die E-Mail Adressen müssen mit `"- build-notification"` gekennzeichnet sein ([siehe oben](#befüllen-der-speziellen-dateien)).
|
||||
|
||||
### Übertragen des aktuellen Standes nach GIT
|
||||
|
||||
|
2
example/.gitignore
vendored
2
example/.gitignore
vendored
@ -1,2 +1,2 @@
|
||||
/*.pdf
|
||||
/*.log
|
||||
/*.log
|
@ -40,4 +40,8 @@ da-appendix:
|
||||
|
||||
- abschnitt: Diplomatbeitsvereinbarung
|
||||
pdf-file: HTL-DA-Vereinbarung.pdf
|
||||
|
||||
da-build-properties:
|
||||
- build-notification: Diplomarbeit - DA_2021_Thema <269bc6a5.O365.htl-leoben.at@emea.teams.ms>
|
||||
- build-notification: mytesms@adress.com
|
||||
---
|
||||
|
Loading…
Reference in New Issue
Block a user