diff --git a/ansible/ci.yml b/ansible/ci.yml index 85f7ad01..35231984 100644 --- a/ansible/ci.yml +++ b/ansible/ci.yml @@ -67,6 +67,7 @@ - role: buildkite_agent priority: 5 # Higher priority agents are assigned work first tags: buildkite_agent + - gcc-multilib # for 32-bit builds - hosts: ci.dlang.io roles: diff --git a/buildkite.sh b/buildkite.sh index 03da473a..c1be0cdd 100755 --- a/buildkite.sh +++ b/buildkite.sh @@ -59,6 +59,33 @@ cat << 'EOF' - wait EOF +################################################################################ +# Test bootstrapping with different compilers +################################################################################ + +case "${BUILDKITE_REPO:-x}" in + "https://github.com/dlang/dmd.git" | \ + "https://github.com/dlang/druntime.git" | \ + "https://github.com/dlang/phobos.git" | \ + "https://github.com/dlang/ci.git") + +for line in dmd-64 ldc-64 ; do + # TODO: dmd-32, gdc-64 + IFS=- read -r compiler model <<< "$line" +cat << EOF + - command: | + ${LOAD_CI_FOLDER} + DMD=$compiler MODEL=$model ./buildkite/test_bootstrap.sh + label: "Bootstrap ($compiler)" + ${DEFAULT_COMMAND_PROPS} +EOF + +done + ;; + *) + ;; +esac + ################################################################################ # Style & coverage targets # Must run after the 'wait' to avoid blocking the build_distribution step diff --git a/buildkite/test_bootstrap.sh b/buildkite/test_bootstrap.sh new file mode 100755 index 00000000..dc1f30d3 --- /dev/null +++ b/buildkite/test_bootstrap.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +PS4="~> " # needed to avoid accidentally generating collapsed output +set -uexo pipefail + +echo "--- Setting build variables" + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +"$DIR/clone_repositories.sh" + +echo "--- Patching DMD and druntime (remove failing tests)" + +# patch makefile which requires gdb 8 - see https://github.com/dlang/ci/pull/301 +sed "s/TESTS+=rt_trap_exceptions_drt_gdb//" -i druntime/test/exceptions/Makefile + +# remove tests which require gdb 8 for now (see https://github.com/dlang/ci/pull/291) +rm dmd/test/runnable/gdb{1,10311,14225,14276,14313,14330,4149}.d +rm dmd/test/runnable/gdb15729.sh + +echo "--- Exporting build variables" + +export BRANCH="${BUILDKITE_PULL_REQUEST_BASE_BRANCH:-}" +export N=2 +export OS_NAME=linux +export FULL_BUILD="${BUILDKITE_PULL_REQUEST+false}" + +echo "--- Go to dmd and source ci.sh" + +cd dmd +source ci.sh + +echo "--- Installing $DMD" +install_d "$DMD" # Source a D compiler + +echo "--- Running the testsuite" +testsuite