Verified Commit aa4517df authored by uweplonus's avatar uweplonus

Initial commit

parents
*.nw linguist-language=tex
**/bios286
**/bios386
**/bios86
*~
*.acn
*.acr
*.alg
*.asm
*.aux
*.defs
*glg
*glo
*gls
*.glsdefs
*.ist
*.log
*.lst
*.o
*.out
*.pdf
*.tex
*.toc
*.ind
*.idx
*.ilg
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get -y install curl
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
RUN apt-get -y install git git-lfs make nasm build-essential
RUN git lfs install
RUN apt-get -y install texlive-full noweb
pipeline {
agent {
node {
label 'master'
}
}
stages {
stage('Cleanup') {
steps {
deleteDir()
}
}
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build asm and pdf') {
agent {
dockerfile {
reuseNode true
}
}
steps {
sh script: 'make'
sh script: 'make pdf'
}
}
stage('Archive Artifacts') {
steps {
archiveArtifacts 'asm/*.asm'
archiveArtifacts 'bin/*'
archiveArtifacts 'Meltdown-Spectre.pdf'
}
}
stage('Update gh-pages from master') {
when {
environment name: 'CHANGE_FORK', value: ''
expression { GIT_URL ==~ 'https://github.com/osdevelopment-info/.*' }
expression { GIT_BRANCH ==~ 'master' }
expression { currentBuild.result == null || currentBuild.result == 'SUCCESS' }
}
steps {
sshagent(['6452f2aa-2b69-4fa7-be5f-5f0ef6d3acba']) {
sh """
git clone --no-checkout \$(echo ${GIT_URL} | sed 's/https:\\/\\//git@/' | sed 's/\\//:/') checkout
git config --add user.email ci@sw4j.org
git config --add user.name "CI Jenkins"
git config push.default simple
cd checkout
git checkout gh-pages
mkdir -p asm/
cp ../*.pdf .
cp ../asm/*.asm asm/
git diff --quiet && git diff --staged --quiet || git commit -am 'Update program code and documentation'
git push
cd ..
rm -rf checkout
"""
}
}
}
}
}
all:
make -C biosx86 all
clean:
make -C biosx86 clean
rm -f *~
% Acronyms BIOS
\newacronym{bios}{BIOS}{Basic Input/Output System}
This diff is collapsed.
NASM = /usr/bin/nasm
NASM_OPTS = -f bin
all: license bios86 bios286 bios386 pdf
license: biosx86.nw
notangle -Rlicense biosx86.nw > LICENSE
bios86.asm: biosx86.nw
notangle -Rbios86.asm biosx86.nw > bios86.asm
bios86: bios86.asm
$(NASM) $(NASM_OPTS) bios86.asm -l bios86.lst -o bios86
bios286.asm: biosx86.nw
notangle -Rbios286.asm biosx86.nw > bios286.asm
bios286: bios286.asm
$(NASM) $(NASM_OPTS) bios286.asm -l bios286.lst -o bios286
bios386.asm: biosx86.nw
notangle -Rbios386.asm biosx86.nw > bios386.asm
bios386: bios386.asm
$(NASM) $(NASM_OPTS) bios386.asm -l bios386.lst -o bios386
pdf: biosx86.nw
nodefs biosx86.nw | sort -u > biosx86.defs
noweave -indexfrom biosx86.defs -delay biosx86.nw > biosx86.tex
xelatex -8bit biosx86
splitindex biosx86.idx
makeglossaries biosx86
xelatex -8bit biosx86
xelatex -8bit biosx86
clean:
rm -f *~
rm -f *.acn
rm -f *.acr
rm -f *.alg
rm -f *.aux
rm -f *.defs
rm -f *.glg
rm -f *.glo
rm -f *.gls
rm -f *.glsdefs
rm -f *.idx
rm -f *.ilg
rm -f *.ind
rm -f *.ins-glg
rm -f *.ins-glo
rm -f *.ins-gls
rm -f *.ist
rm -f *.log
rm -f *.out
rm -f *.tex
rm -f *.toc
rm -f *.lst
This diff is collapsed.
% Glossary BIOS
\newglossaryentry{bootloader}{
name=bootloader,
description={a program that runs at the start of a computer and loads further code}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment