Index: build/jenkins/dockerfiles/builder-base.Dockerfile =================================================================== --- /dev/null +++ build/jenkins/dockerfiles/builder-base.Dockerfile @@ -0,0 +1,39 @@ +FROM debian:buster + +RUN useradd -ms /bin/bash --uid 1006 builder + +RUN apt-get -qq update +RUN apt-get install -qqy \ + build-essential \ + cmake \ + libboost-dev \ + libboost-filesystem-dev \ + libcurl4-gnutls-dev \ + libenet-dev \ + libfmt-dev \ + libgloox-dev \ + libgnutls28-dev \ + libgtk-3-dev \ + libicu-dev \ + libidn11-dev \ + libjson-perl \ + libminiupnpc-dev \ + libogg-dev \ + libopenal-dev \ + libpng-dev \ + libpython-dev \ + libsodium-dev \ + libsdl2-dev \ + libvorbis-dev \ + libwxgtk3.0-dev \ + libxcursor-dev \ + libxml2-dev \ + libxml-simple-perl \ + python \ + python3 \ + subversion \ + vim \ + zlib1g-dev \ + && apt-get clean + +ENV SHELL /bin/bash Index: build/jenkins/dockerfiles/gcc6.Dockerfile =================================================================== --- build/jenkins/dockerfiles/gcc6.Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -FROM gcc:6 - -RUN useradd -ms /bin/bash --uid 1006 builder - -RUN apt-get -qq update && apt-get -qq upgrade -RUN apt-get install -qqy cmake libcurl4-gnutls-dev libenet-dev \ - libgnutls28-dev libgtk-3-dev libicu-dev libidn11-dev libjson-perl \ - libminiupnpc-dev libnspr4-dev libpython-dev libogg-dev \ - libopenal-dev libpng-dev libsdl2-dev libvorbis-dev libxcursor-dev \ - libxml2-dev libxml-simple-perl subversion zlib1g-dev - -ADD libsodium-1.0.17.tar.gz /root/libsodium/ -RUN cd /root/libsodium/libsodium-1.0.17 \ - && ./configure \ - && make && make check \ - && make install - -ADD boost_1_67_0.tar.bz2 /root/boost/ -RUN cd /root/boost/boost_1_67_0 \ - && ./bootstrap.sh --with-libraries=filesystem \ - && ./b2 install - -ADD gloox-1.0.22.tar.bz2 /root/gloox/ -RUN cd /root/gloox/gloox-1.0.22 \ - && ./configure \ - && make && make check \ - && make install - -ADD wxWidgets-3.0.4.tar.bz2 /root/wxWidgets/ -RUN cd /root/wxWidgets/wxWidgets-3.0.4 \ - && ./configure \ - && make \ - && make install - -RUN ldconfig - -USER builder -ENV SHELL /bin/bash - -ENV LIBCC gcc -ENV LIBCXX g++ -ENV PSCC gcc -ENV PSCXX g++ Index: build/jenkins/dockerfiles/gcc7.Dockerfile =================================================================== --- /dev/null +++ build/jenkins/dockerfiles/gcc7.Dockerfile @@ -0,0 +1,10 @@ +FROM build-base:latest + +RUN apt-get install -qqy gcc-7 g++-7 + +USER builder + +ENV LIBCC gcc-7 +ENV LIBCXX g++-7 +ENV PSCC gcc-7 +ENV PSCXX g++-7 Index: build/jenkins/pipelines/docker-differential.Jenkinsfile =================================================================== --- build/jenkins/pipelines/docker-differential.Jenkinsfile +++ build/jenkins/pipelines/docker-differential.Jenkinsfile @@ -17,7 +17,7 @@ // This pipeline is used to build patches on various compilers. -def compilers = ["gcc6"] +def compilers = ["gcc7"] def patchesMap = compilers.collectEntries { ["${it}": patch(it)] Index: build/jenkins/pipelines/docker-rebuild.Jenkinsfile =================================================================== --- build/jenkins/pipelines/docker-rebuild.Jenkinsfile +++ build/jenkins/pipelines/docker-rebuild.Jenkinsfile @@ -18,7 +18,7 @@ // This pipeline is used to build a clean base from scratch in order to // use ZFS snapshots efficiently. -def compilers = ["gcc6"] +def compilers = ["gcc7"] def volumeUpdatesMap = compilers.collectEntries { ["${it}": volumeUpdate(it)] Index: build/jenkins/pipelines/docker-reset.Jenkinsfile =================================================================== --- build/jenkins/pipelines/docker-reset.Jenkinsfile +++ build/jenkins/pipelines/docker-reset.Jenkinsfile @@ -40,16 +40,16 @@ environment name: 'no-cache', value: 'true' } steps { - sh 'docker build --no-cache -t 0ad-gcc6 ~/dockerfiles/gcc6' - // WIP: clang and recent gccs + sh 'docker build --no-cache -t builder-base ~/dockerfiles/builder-base' + sh 'docker build --no-cache -t 0ad-gcc7 ~/dockerfiles/gcc7' sh 'docker build --no-cache -t 0ad-coala ~/dockerfiles/coala' sh 'docker build --no-cache -t 0ad-translations ~/dockerfiles/translations' } } stage("Build") { steps { - sh 'docker build -t 0ad-gcc6 ~/dockerfiles/gcc6' - // WIP: clang and recent gccs + sh 'docker build -t builder-base ~/dockerfiles/builder-base' + sh 'docker build -t 0ad-gcc7 ~/dockerfiles/gcc7' sh 'docker build -t 0ad-coala ~/dockerfiles/coala' sh 'docker build -t 0ad-translations ~/dockerfiles/translations' } @@ -71,7 +71,6 @@ sh "sudo zfs destroy -R zpool0/trunk@latest || true" sh "sudo zfs snapshot zpool0/trunk@base" - sh "sudo zfs clone zpool0/trunk@base zpool0/gcc6" sh "sudo zfs clone zpool0/trunk@base zpool0/gcc7" sh "sudo zfs snapshot zpool0/trunk@latest" Index: build/jenkins/pipelines/docker-svn.Jenkinsfile =================================================================== --- build/jenkins/pipelines/docker-svn.Jenkinsfile +++ build/jenkins/pipelines/docker-svn.Jenkinsfile @@ -19,7 +19,7 @@ // In case of success, it provides a clean base for incremental builds // with the `differential` pipeline. -def compilers = ["gcc6"] +def compilers = ["gcc7"] def volumeUpdatesMap = compilers.collectEntries { ["${it}": volumeUpdate(it)]