Jenkins Pipeline for Manual

Summary:
Set up a Jenkins pipeline to build the manual as PDF:
  * Add a Dockerfile to create a Focal Fossa build environment
  * Add a Jenkinsfile for the Manual pipeline
  * Publish the PDF

Due to unicode characters in the source, LaTeX fails to build:
  * Changed the engine to xelatex
  * Added some LaTeX configurations for the PDF build

Ref T109

Test Plan:
1. Setup Jenkins
1.1 Create a new Pipeline
1.1.1 Definition => Pipeline script from SCM
1.1.1 SCM => Git
1.1.1 Repositories => https://phab.lubuntu.me/source/manual/
1.2. Install plugins
1.2.1 Docker plugin and Docker Pipeline plugin
1.2.2 HTML Publisher plugin
2. Install Docker on the Jenkins server
3. Manually start the job
4. Check, that there is a "Lubuntu Manual" link in the Job view, when the build was successful

Reviewers: lynorian, tsimonq2, teward

Reviewed By: tsimonq2

Maniphest Tasks: T109

Differential Revision: https://phab.lubuntu.me/D102
pull/2/head
apt-ghetto 4 years ago committed by Simon Quigley
parent efc0cb2417
commit f7084ae1e4

@ -0,0 +1,15 @@
FROM ubuntu:focal
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && apt-get install --yes --no-install-recommends \
python3-pip \
python3-sphinx \
latexmk \
texlive \
texlive-formats-extra \
arcanist \
build-essential \
python3-sphinx-rtd-theme \
python3-sphinx-bootstrap-theme

33
Jenkinsfile vendored

@ -0,0 +1,33 @@
pipeline {
agent {
dockerfile true
}
stages {
stage('Checkout Source') {
steps {
git 'https://phab.lubuntu.me/source/manual.git'
}
}
stage('Clean Environment') {
steps {
sh 'make clean'
}
}
stage('Build The Manual As PDF') {
steps {
sh 'make latexpdf'
}
}
}
post {
success {
publishHTML (target : [allowMissing: false,
alwaysLinkToLastBuild: true,
keepAll: true,
reportDir: 'build/latex',
reportFiles: 'LubuntuManual.pdf',
reportName: 'Lubuntu Manual',
reportTitles: 'Lubuntu Manual'])
}
}
}

@ -221,6 +221,8 @@ htmlhelp_basename = 'LubuntuManualdoc'
# -- Options for LaTeX output --------------------------------------------- # -- Options for LaTeX output ---------------------------------------------
latex_engine = 'xelatex'
latex_elements = { latex_elements = {
# The paper size ('letterpaper' or 'a4paper'). # The paper size ('letterpaper' or 'a4paper').
# #
@ -237,8 +239,24 @@ latex_elements = {
# Latex figure (float) alignment # Latex figure (float) alignment
# #
# 'figure_align': 'htbp', # 'figure_align': 'htbp',
'fontpkg': r'''
\setmainfont{DejaVu Serif}
\setsansfont{DejaVu Sans}
\setmonofont{DejaVu Sans Mono}
''',
'preamble': r'''
\usepackage[titles]{tocloft}
\cftsetpnumwidth {1.25cm}\cftsetrmarg{1.5cm}
\setlength{\cftchapnumwidth}{0.75cm}
\setlength{\cftsecindent}{\cftchapnumwidth}
\setlength{\cftsecnumwidth}{1.25cm}
''',
'fncychap': r'\usepackage[Bjornstrup]{fncychap}',
'printindex': r'\footnotesize\raggedright\printindex',
} }
latex_show_urls = 'footnote'
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, # (source start file, target name, title,
# author, documentclass [howto, manual, or own class]). # author, documentclass [howto, manual, or own class]).

Loading…
Cancel
Save