mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-21 02:23:47 +00:00
Run Linux CI on GCC 8 and clang 9
Those are the minimum supported versions. Only PCH builds are performed to save build time.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
FROM debian:bullseye-slim
|
||||
|
||||
RUN useradd -ms /bin/bash --uid 1006 builder
|
||||
|
||||
# 0 A.D. dependencies.
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG DEBCONF_NOWARNINGS="yes"
|
||||
RUN apt-get -qqy update && apt-get install -qqy --no-install-recommends \
|
||||
cmake \
|
||||
curl \
|
||||
libboost-dev \
|
||||
libboost-filesystem-dev \
|
||||
libcurl4-gnutls-dev \
|
||||
libenet-dev \
|
||||
libfmt-dev \
|
||||
libfreetype6-dev \
|
||||
libgloox-dev \
|
||||
libgnutls28-dev \
|
||||
libgtk-3-dev \
|
||||
libicu-dev \
|
||||
libminiupnpc-dev \
|
||||
libogg-dev \
|
||||
libopenal-dev \
|
||||
libpng-dev \
|
||||
libsdl2-dev \
|
||||
libsodium-dev \
|
||||
libvorbis-dev \
|
||||
libwxgtk3.0-gtk3-dev \
|
||||
libxml2-dev \
|
||||
make \
|
||||
m4 \
|
||||
patch \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
python-is-python3 \
|
||||
subversion \
|
||||
xz-utils \
|
||||
zlib1g-dev \
|
||||
&& apt-get clean
|
||||
|
||||
# Install git-lfs
|
||||
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
|
||||
RUN apt-get -qqy update && apt-get install -qqy --no-install-recommends git-lfs
|
||||
RUN git lfs install --system --skip-smudge
|
||||
|
||||
# Install rust and Cargo via rustup
|
||||
USER builder
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain 1.51.0 -y
|
||||
ENV PATH="${PATH}:/home/builder/.cargo/bin"
|
||||
USER root
|
||||
|
||||
ENV SHELL=/bin/bash
|
||||
@@ -18,7 +18,6 @@ RUN apt-get -qqy update && apt-get install -qqy --no-install-recommends \
|
||||
libgnutls28-dev \
|
||||
libgtk-3-dev \
|
||||
libicu-dev \
|
||||
libidn11-dev \
|
||||
libminiupnpc-dev \
|
||||
libogg-dev \
|
||||
libopenal-dev \
|
||||
@@ -48,9 +47,9 @@ RUN git lfs install --system --skip-smudge
|
||||
|
||||
# Install rust and Cargo via rustup
|
||||
USER builder
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain 1.51.0 -y
|
||||
ENV PATH="${PATH}:/home/builder/.cargo/bin"
|
||||
USER root
|
||||
|
||||
ENV SHELL /bin/bash
|
||||
ENV SHELL=/bin/bash
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
FROM buster-base:latest
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG DEBCONF_NOWARNINGS="yes"
|
||||
RUN echo "deb https://deb.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list
|
||||
RUN apt-get update && apt-get install -qqy llvm-8 clang-8 lld-8 libclang-8-dev --no-install-recommends
|
||||
|
||||
USER builder
|
||||
|
||||
ENV CC clang-8
|
||||
ENV CXX clang++-8
|
||||
ENV LDFLAGS -fuse-ld=lld-8
|
||||
@@ -0,0 +1,11 @@
|
||||
FROM bullseye-base:latest
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG DEBCONF_NOWARNINGS="yes"
|
||||
RUN apt-get update && apt-get install -qqy llvm-9 clang-9 lld-9 libclang-9-dev --no-install-recommends
|
||||
|
||||
USER builder
|
||||
|
||||
ENV CC=clang-9
|
||||
ENV CXX=clang++-9
|
||||
ENV LDFLAGS="-fuse-ld=lld-9"
|
||||
@@ -1,12 +0,0 @@
|
||||
FROM buster-base:latest
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG DEBCONF_NOWARNINGS="yes"
|
||||
RUN apt-get install -qqy gcc-7 g++-7 llvm-7 libclang-7-dev --no-install-recommends
|
||||
|
||||
USER builder
|
||||
|
||||
ENV LIBCC gcc-7
|
||||
ENV LIBCXX g++-7
|
||||
ENV CC gcc-7
|
||||
ENV CXX g++-7
|
||||
@@ -0,0 +1,12 @@
|
||||
FROM buster-base:latest
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG DEBCONF_NOWARNINGS="yes"
|
||||
RUN apt-get install -qqy gcc-8 g++-8 --no-install-recommends
|
||||
|
||||
USER builder
|
||||
|
||||
ENV LIBCC=gcc-8
|
||||
ENV LIBCXX=g++-8
|
||||
ENV CC=gcc-8
|
||||
ENV CXX=g++-8
|
||||
@@ -15,7 +15,7 @@
|
||||
* along with 0 A.D. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// This pipeline builds the game on Linux (with min and max supported versions of GCC and clang) and runs tests.
|
||||
// This pipeline builds the game on Linux (with minimum supported versions of GCC and clang) and runs tests.
|
||||
|
||||
pipeline {
|
||||
// Stop previous build in pull requests, but not in branches
|
||||
@@ -37,6 +37,7 @@ pipeline {
|
||||
steps {
|
||||
discoverGitReferenceBuild()
|
||||
sh "cd build/jenkins/dockerfiles/ && docker build -t buster-base -f buster-base.Dockerfile ."
|
||||
sh "cd build/jenkins/dockerfiles/ && docker build -t bullseye-base -f bullseye-base.Dockerfile ."
|
||||
}
|
||||
}
|
||||
stage("Linux Build") {
|
||||
@@ -46,18 +47,14 @@ pipeline {
|
||||
axes {
|
||||
axis {
|
||||
name 'JENKINS_COMPILER'
|
||||
values 'gcc7' //, 'gcc14', 'clang8', 'clang18'
|
||||
}
|
||||
axis {
|
||||
name 'JENKINS_PCH'
|
||||
values 'pch' //, 'no-pch'
|
||||
values 'gcc8', 'clang9'
|
||||
}
|
||||
}
|
||||
|
||||
agent {
|
||||
dockerfile {
|
||||
label 'LinuxAgent'
|
||||
customWorkspace "workspace/${JENKINS_COMPILER}-${JENKINS_PCH}"
|
||||
customWorkspace "workspace/${JENKINS_COMPILER}-pch"
|
||||
dir 'build/jenkins/dockerfiles'
|
||||
filename "${JENKINS_COMPILER}.Dockerfile"
|
||||
}
|
||||
@@ -71,13 +68,7 @@ pipeline {
|
||||
|
||||
sh "libraries/build-source-libs.sh 2> ${JENKINS_COMPILER}-prebuild-errors.log"
|
||||
|
||||
script {
|
||||
if (env.JENKINS_PCH == "no-pch") {
|
||||
sh "build/workspaces/update-workspaces.sh --jenkins-tests --without-pch 2>> ${JENKINS_COMPILER}-prebuild-errors.log"
|
||||
} else {
|
||||
sh "build/workspaces/update-workspaces.sh --jenkins-tests 2>> ${JENKINS_COMPILER}-prebuild-errors.log"
|
||||
}
|
||||
}
|
||||
sh "build/workspaces/update-workspaces.sh --jenkins-tests 2>> ${JENKINS_COMPILER}-prebuild-errors.log"
|
||||
|
||||
script {
|
||||
if (params.CLEANBUILD) {
|
||||
|
||||
Reference in New Issue
Block a user