forked from Hg/htlle-da-vorlage
Fixed security issue during jenkins build
Danke an lcle
This commit is contained in:
commit
5550c1185a
72
Jenkinsfile
vendored
72
Jenkinsfile
vendored
@ -9,21 +9,30 @@ pipeline {
|
||||
parameters {
|
||||
string(
|
||||
name: 'REPOSITORY',
|
||||
defaultValue: 'itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git',
|
||||
defaultValue: 'https://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/)"
|
||||
)
|
||||
)
|
||||
string(
|
||||
name: 'GIT_BRANCH',
|
||||
defaultValue: '*/master',
|
||||
description: "Expert: Wenn Sie einen anderen als den 'master' Branch bauen möchten"
|
||||
)
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout DA') {
|
||||
steps {
|
||||
stage('Set some variables and clean workspace'){
|
||||
steps{
|
||||
cleanWs()
|
||||
script {
|
||||
// set template values
|
||||
env.TEMPLATE_URL = 'https://itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git'
|
||||
env.TEMPLATE_NAME = 'HTLLE-DA-Vorlage'
|
||||
|
||||
// add https to the url if not present
|
||||
env.REPOSITORY = params.REPOSITORY
|
||||
if(!env.REPOSITORY.startsWith("https://")) {
|
||||
@ -40,19 +49,28 @@ pipeline {
|
||||
if(env.GIT_PATH.startsWith("~/")) {
|
||||
env.GIT_PATH = env.GIT_PATH.substring(2, (env.GIT_PATH.length() - 1))
|
||||
}
|
||||
// be sure branch is set
|
||||
env.GIT_BRANCH = params.GIT_BRANCH ?: '*/master'
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Checkout DA') {
|
||||
when {
|
||||
expression { env.TEMPLATE_URL != env.REPOSITORY }
|
||||
}
|
||||
steps {
|
||||
// checkout out the repository including submodules
|
||||
// builduser acc used in git
|
||||
checkout([
|
||||
$class: 'GitSCM',
|
||||
branches: [[name: '*/master']],
|
||||
branches: [[name: "${env.GIT_BRANCH}"]],
|
||||
doGenerateSubmoduleConfigurations: false,
|
||||
extensions: [[
|
||||
$class: 'SubmoduleOption',
|
||||
disableSubmodules: false,
|
||||
disableSubmodules: true,
|
||||
parentCredentials: true,
|
||||
recursiveSubmodules: true,
|
||||
shallow: false,
|
||||
recursiveSubmodules: false,
|
||||
shallow: true,
|
||||
reference: '',
|
||||
trackingSubmodules: false
|
||||
]],
|
||||
@ -64,28 +82,46 @@ pipeline {
|
||||
])
|
||||
}
|
||||
}
|
||||
stage('Checkout template') {
|
||||
steps {
|
||||
// remove template folder and fresh checkout
|
||||
sh "rm -rf ${env.TEMPLATE_NAME}"
|
||||
checkout([
|
||||
$class: 'GitSCM',
|
||||
branches: [[name: '*/master']],
|
||||
doGenerateSubmoduleConfigurations: false,
|
||||
extensions: [[
|
||||
$class: 'RelativeTargetDirectory',
|
||||
relativeTargetDir: "${env.GIT_PATH}${env.TEMPLATE_NAME}"
|
||||
]],
|
||||
submoduleCfg: [],
|
||||
userRemoteConfigs: [[
|
||||
credentialsId: 'd65d903b-21ee-4055-98aa-ef82a903e287',
|
||||
url: "${env.TEMPLATE_URL}"
|
||||
]]
|
||||
])
|
||||
}
|
||||
}
|
||||
stage('Build DA') {
|
||||
when {
|
||||
expression { 'https://itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git' != env.REPOSITORY }
|
||||
expression { env.TEMPLATE_URL != env.REPOSITORY }
|
||||
}
|
||||
steps {
|
||||
dir(env.GIT_PATH) {
|
||||
sh 'make pdf -C HTLLE-DA-Vorlage SOURCEDIR=$(pwd)'
|
||||
sh "make pdf -C ${env.TEMPLATE_NAME} SOURCEDIR=`pwd`"
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Build only template') {
|
||||
when {
|
||||
expression { 'https://itsp.htl-leoben.at/git/Hg/HTLLE-DA-Vorlage.git' == env.REPOSITORY }
|
||||
expression { env.TEMPLATE_URL == 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)
|
||||
'''
|
||||
sh """#!/bin/bash
|
||||
cp -rv ${env.TEMPLATE_NAME}/example/. .
|
||||
make pdf -C ${env.TEMPLATE_NAME} SOURCEDIR=`pwd`
|
||||
"""
|
||||
}
|
||||
}
|
||||
stage('Test if diplomarbeit.pdf exists') {
|
||||
|
@ -62,7 +62,7 @@ Wenn Sie mit einer neuen Diplomarbeit beginnen, dann gehen Sie am besten wie fol
|
||||
|
||||
### Erstellen eines leeren GIT Repositories in dem Sie Ihre DA Daten verwalten werden.
|
||||
|
||||
Es ist prinzipiell egal auf welchem GIT Server sie Ihr Repository hosten. Wir empfehlen dies aber auf dem HTL eigenen `https://itsp.htl-leoben.at/git` Server zu machen. **Sollten Sie Ihre Arbeit auf einem anderen Server hosten, dann achten Sie darauf dass sie ein privates Repository verwenden** denn sonst wäre der Inhalt der Arbeit bereits (unabsichtlich) veröffentlicht und beim Plagiatscheck würde Ihre gesamte Arbeit als Plagiat aufscheinen - und in weiterer Folge dann abgelehnt werden.
|
||||
Es ist prinzipiell egal auf welchem GIT Server sie Ihr Repository hosten. Wir empfehlen dies aber auf dem HTL eigenen `https://itsp.htl-leoben.at/git` Server zu machen. **Sollten Sie Ihre Arbeit auf einem anderen Server hosten, dann achten Sie darauf dass sie ein privates Repository verwenden** denn sonst wäre der Inhalt der Arbeit bereits (unabsichtlich) veröffentlicht und beim Plagiatscheck würde Ihre gesamte Arbeit als Plagiat aufscheinen - und in weiterer Folge dann abgelehnt werden. Auch am HTL eigenen GIT-Server kann es aus Plagiats-Gründen ratsam sein, für die Diplomarbeit ein privates Repository zu verwenden.
|
||||
|
||||
|
||||
#### Fall 1: Sie beginnen mit einem komplett neuen Repository
|
||||
@ -265,7 +265,7 @@ Sollten Sie die notwendigen Tools (pandoc, LaTeX, etc.) nicht lokal installieren
|
||||
|
||||
Ö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.
|
||||
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. Wenn Sie nicht wissen was in GIT `branches` sind, brauchen Sie den Parameter `GIT_BRANCH` nicht anpassen.
|
||||
|
||||
Beispiel: `GIT_PATH` ist `"text"`
|
||||
```
|
||||
@ -321,6 +321,8 @@ $ tree ~/Diplomarbeit
|
||||
|
||||
**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)).
|
||||
|
||||
Es muss nicht einmal die Vorlage als GIT submodule im Repository eingecheckt sein, weil hier während des Build Prozesses die aktuelle verwendet wird.
|
||||
|
||||
### Übertragen des aktuellen Standes nach GIT
|
||||
|
||||
Es mach Sinn, die Diplomarbeit (auch nach kleinen Änderungen) immer wieder nach GIT zu übertragen. Damit ist sie optimal gesichert und falls Ihre Teammitglieder auch an der DA Arbeiten bekommen sie auch Zugang zum aktuellsten Stand. Falls Sie noch nicht mit GIT gearbeitet haben, stellen die folgenden Absätze eine (ultra-) [Kurzeinführung](https://rogerdudler.github.io/git-guide/) dar.
|
||||
|
Loading…
Reference in New Issue
Block a user