Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CircleCI: Bump jobs to Ubuntu 24 #4787

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 30 additions & 39 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,36 +9,26 @@ commonSteps: &commonSteps
if [ "$CI_OS" = "linux" ]; then
export DEBIAN_FRONTEND=noninteractive
if [[ "${EXTRA_CMAKE_FLAGS:-}" = *-DMULTILIB?ON* ]]; then
dpkg --add-architecture i386
sudo dpkg --add-architecture i386
gcc_pkg="g++-multilib"
libcurl_pkg="libcurl4 libcurl4:i386"
libcurl_pkg="libcurl4t64 libcurl4t64:i386"
else
gcc_pkg="g++"
libcurl_pkg="libcurl4"
libcurl_pkg="libcurl4t64"
fi
apt-get -q update
apt-get -yq install \
git-core $gcc_pkg \
zlib1g-dev $libcurl_pkg curl gdb python3 python3-pip tzdata unzip zip \
software-properties-common gnupg \
sudo apt-get -q update
sudo apt-get -yq install \
git-core $gcc_pkg cmake \
llvm-$LLVM_MAJOR-dev libclang-common-$LLVM_MAJOR-dev zlib1g-dev \
$libcurl_pkg curl gdb python3 python3-pip tzdata unzip zip \
${EXTRA_APT_PACKAGES:-}
# set up apt.llvm.org repo for being able to install more recent LLVM versions than provided by the distro
curl -fsS https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
add-apt-repository -y "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-$LLVM_MAJOR main"
apt-get -q update
apt-get -yq install llvm-$LLVM_MAJOR-dev libclang-common-$LLVM_MAJOR-dev
# Download & extract CMake
curl -fL --retry 3 --max-time 300 -o cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v3.27.1/cmake-3.27.1-linux-x86_64.tar.gz
mkdir cmake
tar -xf cmake.tar.gz --strip 1 -C cmake
rm cmake.tar.gz
# Download & extract Ninja
curl -fL --retry 3 --max-time 60 -O https://github.com/symmetryinvestments/ninja/releases/download/v1.11.1-sym1/ninja-linux.zip
mkdir ninja
unzip ninja-linux.zip -d ninja
rm ninja-linux.zip
# Add CMake and Ninja to PATH for future steps
echo "export PATH=$PWD/cmake/bin:$PWD/ninja:$PATH" >> $BASH_ENV
# Add Ninja to PATH for future steps
echo "export PATH=$PWD/ninja:\$PATH" >> $BASH_ENV
fi
# Install lit
python3 --version
Expand Down Expand Up @@ -78,50 +68,51 @@ commonSteps: &commonSteps
- run:
name: Run LIT testsuite
when: always
command: cd ../build/tests && python3 runlit.py -v -j $PARALLELISM .
- run:
name: Run DMD testsuite
when: always
command: |
cd ../build
set -ux
if [ "$CI_OS" = "linux" ]; then
# Circle's RAM disk FS apparently doesn't allow long paths.
rm ../project/tests/dmd/compilable/issue17167.sh
# FIXME: lsan_interceptors.cpp:82 "((!lsan_init_is_running)) != (0)"
rm tests/sanitizers/lsan_memleak.d
fi
DMD_TESTSUITE_MAKE_ARGS=-j$PARALLELISM ctest -V -R dmd-testsuite
cd ../build/tests
python3 runlit.py -v -j $PARALLELISM .
- run:
name: Run DMD testsuite
when: always
command: cd ../build && DMD_TESTSUITE_MAKE_ARGS=-j$PARALLELISM ctest -V -R dmd-testsuite
- run:
name: Run defaultlib unittests & druntime integration tests
when: always
command: cd ../build && ctest -j$PARALLELISM --output-on-failure -E "dmd-testsuite|ldc2-unittest|lit-tests"

version: 2
jobs:
Ubuntu-20.04-multilib-rtSanitizers:
Ubuntu-24.04-multilib-rtSanitizers:
<<: *commonSteps
docker:
- image: ubuntu:20.04
machine:
image: ubuntu-2404:current
resource_class: large
environment:
- PARALLELISM: 4
- CI_OS: linux
- LLVM_MAJOR: 15
- HOST_LDC_VERSION: 1.24.0
- LLVM_MAJOR: 18
- HOST_LDC_VERSION: 1.39.0
- EXTRA_CMAKE_FLAGS: "-DMULTILIB=ON -DRT_SUPPORT_SANITIZERS=ON -DBUILD_LTO_LIBS=ON"
Ubuntu-20.04-sharedLibsOnly-gdmd:
Ubuntu-24.04-sharedLibsOnly-gdmd:
<<: *commonSteps
docker:
- image: ubuntu:20.04
machine:
image: ubuntu-2404:current
resource_class: large
environment:
- PARALLELISM: 4
- CI_OS: linux
- LLVM_MAJOR: 15
- LLVM_MAJOR: 18
- EXTRA_APT_PACKAGES: gdmd
- EXTRA_CMAKE_FLAGS: "-DBUILD_SHARED_LIBS=ON -DBUILD_LTO_LIBS=ON -DD_COMPILER=gdmd -DLDC_LINK_MANUALLY=ON"

workflows:
version: 2
build:
jobs:
- Ubuntu-20.04-multilib-rtSanitizers
- Ubuntu-20.04-sharedLibsOnly-gdmd
- Ubuntu-24.04-multilib-rtSanitizers
- Ubuntu-24.04-sharedLibsOnly-gdmd
7 changes: 4 additions & 3 deletions tests/debuginfo/print_gdb.d
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,8 @@ void main()
// CHECK: type = print_gdb.eA
// GDB: whatis print_gdb.eA
// CHECK: type = print_gdb.eA
// GDB: p b_Glob
// note: `b_Glob` worked with gdb v9; gdb v15 requires a fully qualified name
// GDB: p inputs.import_b.b_Glob
// CHECK: = 99.8

cC clsC = new cC;
Expand All @@ -106,7 +107,7 @@ void main()
clsC.mixedVal++;

// BP
// GDB: b print_gdb.d:109
// GDB: b print_gdb.d:110
// GDB: c
// GDB: p *clsC
// GDB: p clsC.classMemberFunc(6)
Expand All @@ -123,7 +124,7 @@ void main()
templatedStruct!float tsF;

// BP
// GDB: b print_gdb.d:126
// GDB: b print_gdb.d:127
// GDB: c
// GDB: whatis tsF
// CHECK: type = print_gdb.templatedStruct
Expand Down