1
0

Move More CI into Jenkins - Travis Migration Progress (#5241)

* Add build stage to Jenkinsfile

* Run travisbuild in bash rather than sh

* Add GCC/Clang differentiation

* Use different working directory for each build type.

* Correct directory name

* Remove travis config file

* Always clean workspace afterwards
This commit is contained in:
Alexander Harkness 2021-06-17 08:31:29 +00:00 committed by GitHub
parent 62e95745ac
commit 4e48464bb3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 83 deletions

View File

@ -1,78 +0,0 @@
language: cpp
cache:
ccache: true
directories:
# Store ctest cost data
- Testing
# Use Linux by default
os: linux
dist: bionic
# Install newer SeeMake on Linux
addons:
snaps:
- name: cmake
confinement: classic
channel: latest
jobs:
include:
# ARM workers are the slowest. Having these first in the build matrix makes travis faster overall.
- name: "Clang 10.0 - Debug"
arch: arm64
compiler: clang
dist: focal # For Clang 10, bionic is Clang 6 for some reason.
before_install: &use-cmake
- export PATH=/snap/bin/:${PATH}
env: *Debug
- name: "AppleClang - Debug"
os: osx
osx_image: xcode11.3
before_install:
- HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache
env: &Debug
- TRAVIS_CUBERITE_BUILD_TYPE=Debug
- name: "Clang 7.0 - Release"
compiler: clang
before_install: *use-cmake
env: *Release
- name: "Clang 7.0 - Debug"
compiler: clang
before_install: *use-cmake
env: *Debug
- name: "GCC 7.5 - Release, CMake 3.13, No Unity"
compiler: gcc
before_install:
- wget --output-document=${HOME}/CMake http://cmake.org/files/v3.13/cmake-3.13.0-Linux-x86_64.tar.gz
- tar --extract --one-top-level=${HOME}/SeeMake --strip-components 1 --file ${HOME}/CMake
- export PATH=${HOME}/SeeMake/bin/:${PATH}
env:
- TRAVIS_CUBERITE_BUILD_TYPE=Release
- TRAVIS_CUBERITE_UNITY_BUILDS=No
- name: "GCC 7.5 - Debug"
compiler: gcc
before_install: *use-cmake
env: *Debug
# Do not let CMake find ccache wrappers
# we use CMAKE_CXX_COMPILER_LAUNCHER for ccache support
before_script:
- export PATH=$(echo "$PATH" | sed -e 's/:\/usr\/lib\/ccache//')
# Run the build and tests
script: ./travisbuild.sh
notifications:
email:
on_success: change
on_failure: always
branches:
only:
- master

30
Jenkinsfile vendored
View File

@ -27,9 +27,35 @@ pipeline {
}
}
stage("Build") {
steps {
sh 'echo "TODO: Replace Travis here."'
parallel {
stage("gcc") {
environment {
TRAVIS_CUBERITE_BUILD_TYPE = 'Release'
TRAVIS_JOB_NUMBER = "{$env.BUILD_ID}"
CC = "gcc"
CXX = "g++"
}
steps {
sh 'bash ./travisbuild.sh'
}
}
stage("clang") {
environment {
TRAVIS_CUBERITE_BUILD_TYPE = 'Debug'
TRAVIS_JOB_NUMBER = "{$env.BUILD_ID}"
CC = "clang"
CXX = "clang++"
}
steps {
sh 'bash ./travisbuild.sh'
}
}
}
}
}
post {
always {
cleanWs()
}
}
}

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env bash
set -e
@ -20,9 +20,13 @@ if [ `which ccache` ]; then
ccache --zero-stats
fi
workdir="$CC"_"$TRAVIS_CUBERITE_BUILD_TYPE"
mkdir "$workdir"
cd "$workdir"
# Work around a Clang + ccache issue with failing builds by disabling
# precompiled headers. Turn off LTO for faster build speeds
cmake . -DCMAKE_BUILD_TYPE=${TRAVIS_CUBERITE_BUILD_TYPE} \
cmake .. -DCMAKE_BUILD_TYPE=${TRAVIS_CUBERITE_BUILD_TYPE} \
-DBUILD_TOOLS=Yes \
-DPRECOMPILE_HEADERS=No \
-DSELF_TEST=Yes \
@ -31,7 +35,7 @@ cmake . -DCMAKE_BUILD_TYPE=${TRAVIS_CUBERITE_BUILD_TYPE} \
${CACHE_ARGS};
echo "Building..."
cmake --build . --parallel 2;
cmake --build . --parallel 3;
if [ `which ccache` ]; then
echo "Built with ccache, outputting cache stats..."