From 8c74286f211abe9114358bae97de5b59a38c023f Mon Sep 17 00:00:00 2001 From: LukasK13 Date: Tue, 21 Jul 2020 11:22:31 +0200 Subject: [PATCH] Pipeline added. --- Dockerfile | 10 ++++++++ Jenkinsfile | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 Dockerfile create mode 100644 Jenkinsfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..67f27a0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM debian + +RUN apt-get update && apt-get install -y \ + python \ + python-pip \ + texlive + +RUN pip install virtualenv + +CMD ["/bin/bash"] \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..34d02dd --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,68 @@ +pipeline { + agent { + dockerfile { + filename "Dockerfile" + args "-u root" //needed to get around permission issues + } + } + environment { + SPHINX_DIR = 'docs' + BUILD_DIR = 'docs/build' + SOURCE_DIR = 'docs/source' + DEPLOY_HOST = 'deployer@www.example.com:/path/to/docs/' + } + stages { + stage('Install Dependencies') { + steps { + // virtualenv may not be necessary with root, + // but I still think it's a good idea. + sh ''' + virtualenv pyenv + . pyenv/bin/activate + pip install -r requirements.txt + ''' + } + } + stage('Build') { + steps { + // clear out old files + sh 'rm -rf ${BUILD_DIR}' + sh 'rm -f ${SPHINX_DIR}/sphinx-build.log' + sh ''' + ${WORKSPACE}/pyenv/bin/sphinx-build \ + -q -w ${SPHINX_DIR}/sphinx-build.log \ + -b html \ + -d ${BUILD_DIR}/doctrees ${SOURCE_DIR} ${BUILD_DIR} + ''' + archiveArtifacts 'docs/build' + } + post { + failure { + sh 'cat ${SPHINX_DIR}/sphinx-build.log' + } + } + } +/* + stage('Deploy') { + steps { + sshagent(credentials: ['deployer']) { + sh '''#!/bin/bash + rm -f ${SPHINX_DIR}/rsync.log + RSYNCOPT=(-aze 'ssh -o StrictHostKeyChecking=no') + rsync "${RSYNCOPT[@]}" \ + --exclude-from=${SPHINX_DIR}/rsync-exclude.txt \ + --log-file=${SPHINX_DIR}/rsync.log \ + --delete \ + ${BUILD_DIR}/ ${DEPLOY_HOST} + ''' + } + } + post { + failure { + sh 'cat ${SPHINX_DIR}/rsync.log' + } + } + } +*/ + } +} \ No newline at end of file