diff --git a/.drone.star b/.drone.star index 1f741e96a..2d995d2a6 100644 --- a/.drone.star +++ b/.drone.star @@ -6,12 +6,11 @@ # _triggers = { "branch": [ "master", "develop" ] } -_container_tag = 'e9696175806589fc91e160399eedeac8fdc88c68' _win_container_tag = 'e7bd656c3515263f9b3c69a2d73d045f6a0fed72' def _image(name): - return 'ghcr.io/anarthal-containers/{}:{}'.format(name, _container_tag) + return 'ghcr.io/anarthal/cpp-ci-containers/{}'.format(name) def _win_image(name): return 'ghcr.io/anarthal-containers/{}:{}'.format(name, _win_container_tag) @@ -122,7 +121,7 @@ def _pipeline( "steps": steps, "services": [{ "name": "mysql", - "image": "ghcr.io/anarthal-containers/ci-db:{}-{}".format(db, _container_tag), + "image": "ghcr.io/anarthal/cpp-ci-containers/{}".format(db), "volumes": [{ "name": "mysql-socket", "path": "/var/run/mysqld" @@ -150,7 +149,7 @@ def linux_b2( valgrind=0, arch='amd64', fail_if_no_openssl=1, - db='mysql-8.4.1', + db='mysql-8_4_1:1', ): command = _b2_command( source_dir='$(pwd)', @@ -202,7 +201,7 @@ def windows_b2( def linux_cmake( name, image, - db='mysql-8.4.1', + db='mysql-8_4_1:1', build_shared_libs=0, cmake_build_type='Debug', cxxstd='20', @@ -224,7 +223,7 @@ def linux_cmake_noopenssl(name): '--source-dir=$(pwd) ' + \ 'cmake-noopenssl ' + \ '--generator=Ninja ' - return _pipeline(name=name, image=_image('build-noopenssl'), os='linux', command=command, db=None) + return _pipeline(name=name, image=_image('build-noopenssl:1'), os='linux', command=command, db=None) def linux_cmake_nointeg(name): @@ -232,7 +231,7 @@ def linux_cmake_nointeg(name): '--source-dir=$(pwd) ' + \ 'cmake-nointeg ' + \ '--generator=Ninja ' - return _pipeline(name=name, image=_image('build-gcc13'), os='linux', command=command, db=None) + return _pipeline(name=name, image=_image('build-gcc13:1'), os='linux', command=command, db=None) def windows_cmake( @@ -256,7 +255,7 @@ def windows_cmake( def find_package_b2_linux(name): command = _find_package_b2_command(source_dir='$(pwd)', generator='Ninja') - return _pipeline(name=name, image=_image('build-gcc13'), os='linux', command=command, db=None) + return _pipeline(name=name, image=_image('build-gcc13:1'), os='linux', command=command, db=None) def find_package_b2_windows(name): @@ -271,7 +270,7 @@ def bench(name): '--server-host=mysql ' + \ '--connection-pool-iters=1 ' + \ '--protocol-iters=1 ' - return _pipeline(name=name, image=_image('build-bench'), os='linux', command=command, db='mysql-8.4.1') + return _pipeline(name=name, image=_image('build-bench:1'), os='linux', command=command, db='mysql-8_4_1:1') def docs(name): @@ -287,11 +286,11 @@ def docs(name): def main(ctx): return [ # CMake Linux - linux_cmake('Linux CMake MySQL 5.x', _image('build-gcc14'), db='mysql-5.7.41', build_shared_libs=0), - linux_cmake('Linux CMake MariaDB', _image('build-gcc14'), db='mariadb-11.4.2', build_shared_libs=1), - linux_cmake('Linux CMake cmake 3.8', _image('build-cmake3_8'), cxxstd='11', install_test=0), - linux_cmake('Linux CMake gcc Release', _image('build-gcc14'), cmake_build_type='Release'), - linux_cmake('Linux CMake gcc MinSizeRel', _image('build-gcc14'), cmake_build_type='MinSizeRel'), + linux_cmake('Linux CMake MySQL 5.x', _image('build-gcc14:1'), db='mysql-5_7_41:1', build_shared_libs=0), + linux_cmake('Linux CMake MariaDB', _image('build-gcc14:1'), db='mariadb-11_4_2:1', build_shared_libs=1), + linux_cmake('Linux CMake cmake 3.8', _image('build-cmake3_8:2'), cxxstd='11', install_test=0), + linux_cmake('Linux CMake gcc Release', _image('build-gcc14:1'), cmake_build_type='Release'), + linux_cmake('Linux CMake gcc MinSizeRel', _image('build-gcc14:1'), cmake_build_type='MinSizeRel'), linux_cmake_noopenssl('Linux CMake no OpenSSL'), linux_cmake_nointeg('Linux CMake without integration tests'), @@ -305,27 +304,27 @@ def main(ctx): # B2 Linux # linux_b2('Linux B2 clang-3.6', _image('build-clang3_6'), toolset='clang-3.6', cxxstd='11,14'), - linux_b2('Linux B2 clang-7', _image('build-clang7'), toolset='clang-7', cxxstd='14,17'), - linux_b2('Linux B2 clang-11', _image('build-clang11'), toolset='clang-11', cxxstd='20'), - linux_b2('Linux B2 clang-14-header-only', _image('build-clang14'), toolset='clang-14', cxxstd='11,20', separate_compilation=0), - linux_b2('Linux B2 clang-14-libc++', _image('build-clang14'), toolset='clang-14', cxxstd='20', stdlib='libc++'), - linux_b2('Linux B2 clang-14-arm64', _image('build-clang14'), toolset='clang-14', cxxstd='20', arch='arm64'), - linux_b2('Linux B2 clang-16-sanit', _image('build-clang16'), toolset='clang-16', cxxstd='20', address_sanitizer=1, undefined_sanitizer=1), - linux_b2('Linux B2 clang-16-i386-sanit', _image('build-clang16-i386'), toolset='clang-16', cxxstd='20', address_model='32', address_sanitizer=1, undefined_sanitizer=1), - linux_b2('Linux B2 clang-17', _image('build-clang17'), toolset='clang-17', cxxstd='20'), - linux_b2('Linux B2 clang-18', _image('build-clang18'), toolset='clang-18', cxxstd='23'), - linux_b2('Linux B2 gcc-5', _image('build-gcc5'), toolset='gcc-5', cxxstd='11'), # gcc-5 C++14 doesn't like my constexpr field_view - linux_b2('Linux B2 gcc-5-ts-executor', _image('build-gcc5'), toolset='gcc-5', cxxstd='11', use_ts_executor=1), - linux_b2('Linux B2 gcc-6', _image('build-gcc6'), toolset='gcc-6', cxxstd='14,17'), - linux_b2('Linux B2 gcc-10', _image('build-gcc10'), toolset='gcc-10', cxxstd='17,20'), - linux_b2('Linux B2 gcc-11', _image('build-gcc11'), toolset='gcc-11', cxxstd='20'), - linux_b2('Linux B2 gcc-11-arm64', _image('build-gcc11'), toolset='gcc-11', cxxstd='11,20', arch='arm64', variant='release'), - linux_b2('Linux B2 gcc-11-arm64-sanit', _image('build-gcc11'), toolset='gcc-11', cxxstd='20', arch='arm64', variant='debug'), - linux_b2('Linux B2 gcc-13', _image('build-gcc13'), toolset='gcc-13', cxxstd='20', variant='release'), - linux_b2('Linux B2 gcc-14', _image('build-gcc14'), toolset='gcc-14', cxxstd='23', variant='release'), - linux_b2('Linux B2 gcc-14-sanit', _image('build-gcc14'), toolset='gcc-14', cxxstd='23', variant='debug', address_sanitizer=1, undefined_sanitizer=1), - linux_b2('Linux B2 gcc-14-valgrind', _image('build-gcc14'), toolset='gcc-14', cxxstd='23', variant='debug', valgrind=1), - linux_b2('Linux B2 noopenssl', _image('build-noopenssl'), toolset='gcc', cxxstd='11', fail_if_no_openssl=0), + linux_b2('Linux B2 clang-7', _image('build-clang7:1'), toolset='clang-7', cxxstd='14,17'), + linux_b2('Linux B2 clang-11', _image('build-clang11:1'), toolset='clang-11', cxxstd='20'), + linux_b2('Linux B2 clang-14-header-only', _image('build-clang14:1'), toolset='clang-14', cxxstd='11,20', separate_compilation=0), + linux_b2('Linux B2 clang-14-libc++', _image('build-clang14:1'), toolset='clang-14', cxxstd='20', stdlib='libc++'), + linux_b2('Linux B2 clang-14-arm64', _image('build-clang14:1'), toolset='clang-14', cxxstd='20', arch='arm64'), + linux_b2('Linux B2 clang-16-sanit', _image('build-clang16:1'), toolset='clang-16', cxxstd='20', address_sanitizer=1, undefined_sanitizer=1), + linux_b2('Linux B2 clang-16-i386-sanit', _image('build-clang16-i386:1'), toolset='clang-16', cxxstd='20', address_model='32', address_sanitizer=1, undefined_sanitizer=1), + linux_b2('Linux B2 clang-17', _image('build-clang17:1'), toolset='clang-17', cxxstd='20'), + linux_b2('Linux B2 clang-18', _image('build-clang18:1'), toolset='clang-18', cxxstd='23'), + linux_b2('Linux B2 gcc-5', _image('build-gcc5:1'), toolset='gcc-5', cxxstd='11'), # gcc-5 C++14 doesn't like my constexpr field_view + linux_b2('Linux B2 gcc-5-ts-executor', _image('build-gcc5:1'), toolset='gcc-5', cxxstd='11', use_ts_executor=1), + linux_b2('Linux B2 gcc-6', _image('build-gcc6:1'), toolset='gcc-6', cxxstd='14,17'), + linux_b2('Linux B2 gcc-10', _image('build-gcc10:1'), toolset='gcc-10', cxxstd='17,20'), + linux_b2('Linux B2 gcc-11', _image('build-gcc11:1'), toolset='gcc-11', cxxstd='20'), + linux_b2('Linux B2 gcc-11-arm64', _image('build-gcc11:1'), toolset='gcc-11', cxxstd='11,20', arch='arm64', variant='release'), + linux_b2('Linux B2 gcc-11-arm64-sanit', _image('build-gcc11:1'), toolset='gcc-11', cxxstd='20', arch='arm64', variant='debug'), + linux_b2('Linux B2 gcc-13', _image('build-gcc13:1'), toolset='gcc-13', cxxstd='20', variant='release'), + linux_b2('Linux B2 gcc-14', _image('build-gcc14:1'), toolset='gcc-14', cxxstd='23', variant='release'), + linux_b2('Linux B2 gcc-14-sanit', _image('build-gcc14:1'), toolset='gcc-14', cxxstd='23', variant='debug', address_sanitizer=1, undefined_sanitizer=1), + linux_b2('Linux B2 gcc-14-valgrind', _image('build-gcc14:1'), toolset='gcc-14', cxxstd='23', variant='debug', valgrind=1), + linux_b2('Linux B2 noopenssl', _image('build-noopenssl:1'), toolset='gcc', cxxstd='11', fail_if_no_openssl=0), # B2 Windows windows_b2('Windows B2 msvc14.1 32-bit', _win_image('build-msvc14_1'), toolset='msvc-14.1', cxxstd='11,14,17', variant='release', address_model='32'), diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index ed3cab40b..f049af6e1 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,12 +18,12 @@ jobs: coverage: runs-on: ubuntu-latest container: - image: ghcr.io/anarthal-containers/build-gcc14:e9696175806589fc91e160399eedeac8fdc88c68 + image: ghcr.io/anarthal/cpp-ci-containers/build-gcc14:1 volumes: - /var/run/mysqld:/var/run/mysqld services: mysql: - image: ghcr.io/anarthal-containers/ci-db:mysql-8.4.1-e9696175806589fc91e160399eedeac8fdc88c68 + image: ghcr.io/anarthal/cpp-ci-containers/mysql-8_4_1:1 ports: - 3306:3306 volumes: diff --git a/.github/workflows/docker-linux.yml b/.github/workflows/docker-linux.yml deleted file mode 100644 index 4cb099503..000000000 --- a/.github/workflows/docker-linux.yml +++ /dev/null @@ -1,109 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -name: Build Linux Docker images - -on: - workflow_dispatch: - push: - paths: - - tools/docker/** - - -jobs: - docker-linux: - strategy: - matrix: - include: - - { image: build-clang3_6, dockerfile: build-clang3_6, platforms: "linux/amd64", } - - { image: build-clang7, dockerfile: build-clang7, platforms: "linux/amd64", } - - { image: build-clang11, dockerfile: build-clang11, platforms: "linux/amd64", } - - { image: build-clang14, dockerfile: build-clang14, platforms: "linux/amd64, linux/arm64/v8" } - - { image: build-clang16, dockerfile: build-clang16, platforms: "linux/amd64" } - - { image: build-clang17, dockerfile: build-clang17, platforms: "linux/amd64" } - - { image: build-clang18, dockerfile: build-clang18, platforms: "linux/amd64" } - - { image: build-clang16-i386, dockerfile: build-clang16-i386, platforms: "linux/amd64" } - - { image: build-gcc5, dockerfile: build-gcc5, platforms: "linux/amd64", } - - { image: build-gcc6, dockerfile: build-gcc6, platforms: "linux/amd64", } - - { image: build-gcc10, dockerfile: build-gcc10, platforms: "linux/amd64", } - - { image: build-gcc11, dockerfile: build-gcc11, platforms: "linux/amd64, linux/arm64/v8" } - - { image: build-gcc13, dockerfile: build-gcc13, platforms: "linux/amd64" } - - { image: build-gcc14, dockerfile: build-gcc14, platforms: "linux/amd64" } - - { image: build-cmake3_8, dockerfile: build-cmake3_8, platforms: "linux/amd64", } - - { image: build-noopenssl, dockerfile: build-noopenssl, platforms: "linux/amd64", } - - { image: build-bench, dockerfile: build-bench, platforms: "linux/amd64", } - - { image: build-docs, dockerfile: build-docs, platforms: "linux/amd64", } - - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to the Container registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: anarthal-containers - password: ${{ secrets.ANARTHAL_CONTAINERS_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v6 - with: - context: . - push: true - file: tools/docker/${{ matrix.dockerfile }}.dockerfile - build-args: ${{ matrix.build-args }} - platforms: ${{ matrix.platforms }} - tags: ghcr.io/anarthal-containers/${{ matrix.image }}:${{ github.sha }}, ghcr.io/anarthal-containers/${{ matrix.image }}:latest - - - dbs: - strategy: - matrix: - include: - - { flavor: mysql, version: 5.7.41, platforms: "linux/amd64" } # Unavailable for ARM - - { flavor: mysql, version: 8.4.1, platforms: "linux/amd64, linux/arm64/v8", entrypoint-args: "--mysql-native-password=ON" } - - { flavor: mysql, version: 9.0.0, platforms: "linux/amd64, linux/arm64/v8" } - - { flavor: mariadb, version: 11.4.2, platforms: "linux/amd64, linux/arm64/v8" } - - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to the Container registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: anarthal-containers - password: ${{ secrets.ANARTHAL_CONTAINERS_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v6 - with: - context: . - push: true - file: tools/docker/${{ matrix.flavor }}.dockerfile - build-args: | - BASE_IMAGE_VERSION=${{ matrix.version }} - ENTRYPOINT_ARGS=${{ matrix.entrypoint-args }} - platforms: ${{ matrix.platforms }} - tags: ghcr.io/anarthal-containers/ci-db:${{ matrix.flavor }}-${{ matrix.version }}-${{ github.sha }} diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 5f234d445..e9aa8ce95 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -20,12 +20,12 @@ jobs: fuzz: runs-on: ubuntu-latest container: - image: ghcr.io/anarthal-containers/build-clang18:e9696175806589fc91e160399eedeac8fdc88c68 + image: ghcr.io/anarthal/cpp-ci-containers/build-clang18:1 volumes: - /var/run/mysqld:/var/run/mysqld services: mysql: - image: ghcr.io/anarthal-containers/ci-db:mysql-8.4.1-e9696175806589fc91e160399eedeac8fdc88c68 + image: ghcr.io/anarthal/cpp-ci-containers/mysql-8_4_1:1 ports: - 3306:3306 volumes: diff --git a/tools/docker/build-bench.dockerfile b/tools/docker/build-bench.dockerfile deleted file mode 100644 index bd02414e2..000000000 --- a/tools/docker/build-bench.dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:24.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - gcc-14 \ - g++-14 \ - libssl-dev \ - git \ - ca-certificates \ - python3 \ - python3-requests \ - python-is-python3 \ - cmake \ - ninja-build \ - gpg \ - wget \ - xz-utils \ - mariadb-client \ - libmariadb-dev \ - gpg-agent && \ - ln -s /usr/bin/g++-14 /usr/bin/g++ && \ - ln -s /usr/bin/gcc-14 /usr/bin/gcc - -# Install libmysqlclient. This includes many directories we don't care about. -# Removing them reduces the image size. -# Includes in this tarfile are placed directly under include/, -# unlike the ones in deb packages. Move them to reproduce deb layout. -RUN wget -q https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz && \ - tar -xf mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz && \ - mkdir -p /opt/mysql-8.4.4/include/mysql && \ - mv mysql-8.4.4-linux-glibc2.28-x86_64/lib /opt/mysql-8.4.4 && \ - mv mysql-8.4.4-linux-glibc2.28-x86_64/include/* /opt/mysql-8.4.4/include/mysql/ && \ - rm mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz && \ - rm -rf mysql-8.4.4-linux-glibc2.28-x86_64 diff --git a/tools/docker/build-clang11.dockerfile b/tools/docker/build-clang11.dockerfile deleted file mode 100644 index c22ad2ba9..000000000 --- a/tools/docker/build-clang11.dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:20.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - ca-certificates \ - clang-11 \ - llvm-11 \ - libssl-dev \ - git \ - python3 \ - python3-requests \ - python-is-python3 \ - mysql-client && \ - ln -s /usr/bin/clang++-11 /usr/bin/clang++ && \ - ln -s /usr/bin/clang-11 /usr/bin/clang - diff --git a/tools/docker/build-clang14.dockerfile b/tools/docker/build-clang14.dockerfile deleted file mode 100644 index 319d30e56..000000000 --- a/tools/docker/build-clang14.dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:22.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - ca-certificates \ - clang-14 \ - llvm-14 \ - libc++-14-dev \ - libc++abi-14-dev \ - libssl-dev \ - git \ - valgrind \ - ninja-build \ - cmake \ - python3 \ - python3-requests \ - python-is-python3 \ - mysql-client && \ - ln -s /usr/bin/clang++-14 /usr/bin/clang++ && \ - ln -s /usr/bin/clang-14 /usr/bin/clang - diff --git a/tools/docker/build-clang16-i386.dockerfile b/tools/docker/build-clang16-i386.dockerfile deleted file mode 100644 index 2fa946beb..000000000 --- a/tools/docker/build-clang16-i386.dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:24.04 - -RUN dpkg --add-architecture i386 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - ca-certificates \ - clang-16 \ - llvm-16 \ - libclang-rt-16-dev:i386 \ - libc6-dev:i386 \ - libstdc++-13-dev:i386 \ - libssl-dev:i386 \ - python3 \ - python3-requests \ - python-is-python3 \ - git \ - mysql-client && \ - ln -s /usr/bin/clang++-16 /usr/bin/clang++ && \ - ln -s /usr/bin/clang-16 /usr/bin/clang diff --git a/tools/docker/build-clang16.dockerfile b/tools/docker/build-clang16.dockerfile deleted file mode 100644 index 78d1e8652..000000000 --- a/tools/docker/build-clang16.dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:24.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - ca-certificates \ - clang-16 \ - llvm-16 \ - libclang-rt-16-dev \ - libc++-16-dev \ - libc++abi-16-dev \ - libssl-dev \ - git \ - ninja-build \ - cmake \ - python3 \ - python3-requests \ - python-is-python3 \ - mysql-client && \ - ln -s /usr/bin/clang++-16 /usr/bin/clang++ && \ - ln -s /usr/bin/clang-16 /usr/bin/clang - diff --git a/tools/docker/build-clang17.dockerfile b/tools/docker/build-clang17.dockerfile deleted file mode 100644 index d530d479e..000000000 --- a/tools/docker/build-clang17.dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:24.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - ca-certificates \ - clang-17 \ - llvm-17 \ - libclang-rt-17-dev \ - libc++-17-dev \ - libc++abi-17-dev \ - libssl-dev \ - git \ - ninja-build \ - python3 \ - python3-requests \ - python-is-python3 \ - mysql-client && \ - ln -s /usr/bin/clang++-17 /usr/bin/clang++ && \ - ln -s /usr/bin/clang-17 /usr/bin/clang - diff --git a/tools/docker/build-clang18.dockerfile b/tools/docker/build-clang18.dockerfile deleted file mode 100644 index 45d5fa6a9..000000000 --- a/tools/docker/build-clang18.dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:24.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - ca-certificates \ - clang-18 \ - llvm-18 \ - libclang-rt-18-dev \ - libc++-18-dev \ - libc++abi-18-dev \ - libssl-dev \ - git \ - ninja-build \ - python3 \ - python3-requests \ - python-is-python3 \ - mysql-client && \ - ln -s /usr/bin/clang++-18 /usr/bin/clang++ && \ - ln -s /usr/bin/clang-18 /usr/bin/clang diff --git a/tools/docker/build-clang3_6.dockerfile b/tools/docker/build-clang3_6.dockerfile deleted file mode 100644 index d57b4e20a..000000000 --- a/tools/docker/build-clang3_6.dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:16.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - clang-3.6 \ - llvm-3.6 \ - libssl-dev \ - git \ - ca-certificates \ - python3 \ - python3-requests \ - cmake \ - ninja-build \ - valgrind \ - mysql-client && \ - ln -s /usr/bin/clang++-3.6 /usr/bin/clang++ && \ - ln -s /usr/bin/clang-3.6 /usr/bin/clang && \ - ln -s /usr/bin/python3 /usr/bin/python diff --git a/tools/docker/build-clang7.dockerfile b/tools/docker/build-clang7.dockerfile deleted file mode 100644 index beb4b0e70..000000000 --- a/tools/docker/build-clang7.dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:20.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - ca-certificates \ - clang-7 \ - llvm-7 \ - libssl-dev \ - git \ - python3 \ - python3-requests \ - python-is-python3 \ - mysql-client && \ - ln -s /usr/bin/clang++-7 /usr/bin/clang++ && \ - ln -s /usr/bin/clang-7 /usr/bin/clang - diff --git a/tools/docker/build-cmake3_8.dockerfile b/tools/docker/build-cmake3_8.dockerfile deleted file mode 100644 index d8ea310cc..000000000 --- a/tools/docker/build-cmake3_8.dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:16.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - software-properties-common \ - ca-certificates \ - git \ - python3 \ - python3-requests \ - g++ \ - gnupg-curl \ - libssl-dev \ - ninja-build \ - curl \ - mysql-client && \ - ln -s /usr/bin/python3 /usr/bin/python - -RUN \ - mkdir -p ~/cmake && \ - CMAKE_VERSION=3.8.0 && \ - curl -OLs https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-SHA-256.txt && \ - curl -OLs https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Linux-x86_64.sh && \ - sha256sum -c --ignore-missing cmake-${CMAKE_VERSION}-SHA-256.txt && \ - curl -OLs https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-SHA-256.txt.asc && \ - gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys C6C265324BBEBDC350B513D02D2CEF1034921684 && \ - gpg --verify cmake-${CMAKE_VERSION}-SHA-256.txt.asc cmake-${CMAKE_VERSION}-SHA-256.txt && \ - bash cmake-${CMAKE_VERSION}-Linux-x86_64.sh --skip-license && \ - cd ~ && \ - rm -rf ~/cmake && \ - cmake --version diff --git a/tools/docker/build-docs.dockerfile b/tools/docker/build-docs.dockerfile deleted file mode 100644 index 3605ce981..000000000 --- a/tools/docker/build-docs.dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:22.04 - -COPY tools/docker/install_build_docs.sh / - -ENV DOCBOOK_DTD_DIR=/opt/docbook-dtd -ENV DOCBOOK_XSL_DIR=/opt/docbook-xsl - -RUN bash install_build_docs.sh diff --git a/tools/docker/build-gcc10.dockerfile b/tools/docker/build-gcc10.dockerfile deleted file mode 100644 index f5b59e6c5..000000000 --- a/tools/docker/build-gcc10.dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:20.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - ca-certificates \ - gcc-10 \ - g++-10 \ - libssl-dev \ - git \ - python3 \ - python3-requests \ - python-is-python3 \ - mysql-client && \ - ln -s /usr/bin/g++-10 /usr/bin/g++ && \ - ln -s /usr/bin/gcc-10 /usr/bin/gcc - diff --git a/tools/docker/build-gcc11.dockerfile b/tools/docker/build-gcc11.dockerfile deleted file mode 100644 index d7859132f..000000000 --- a/tools/docker/build-gcc11.dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:22.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - gcc-11 \ - g++-11 \ - libssl-dev \ - git \ - ca-certificates \ - python3 \ - python3-requests \ - python-is-python3 \ - cmake \ - ninja-build \ - valgrind \ - gpg \ - gpg-agent \ - mysql-client && \ - ln -s /usr/bin/g++-11 /usr/bin/g++ && \ - ln -s /usr/bin/gcc-11 /usr/bin/gcc diff --git a/tools/docker/build-gcc13.dockerfile b/tools/docker/build-gcc13.dockerfile deleted file mode 100644 index 1379f0283..000000000 --- a/tools/docker/build-gcc13.dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:24.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - gcc-13 \ - g++-13 \ - libssl-dev \ - git \ - ca-certificates \ - python3 \ - python3-requests \ - python-is-python3 \ - cmake \ - ninja-build \ - valgrind \ - gpg \ - gpg-agent \ - mysql-client && \ - ln -s /usr/bin/g++-13 /usr/bin/g++ && \ - ln -s /usr/bin/gcc-13 /usr/bin/gcc diff --git a/tools/docker/build-gcc14.dockerfile b/tools/docker/build-gcc14.dockerfile deleted file mode 100644 index 3436c1b10..000000000 --- a/tools/docker/build-gcc14.dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:24.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - gcc-14 \ - g++-14 \ - libssl-dev \ - git \ - ca-certificates \ - python3 \ - python3-requests \ - python-is-python3 \ - cmake \ - ninja-build \ - valgrind \ - gpg \ - gpg-agent \ - mysql-client && \ - ln -s /usr/bin/g++-14 /usr/bin/g++ && \ - ln -s /usr/bin/gcc-14 /usr/bin/gcc diff --git a/tools/docker/build-gcc5.dockerfile b/tools/docker/build-gcc5.dockerfile deleted file mode 100644 index d13b64be4..000000000 --- a/tools/docker/build-gcc5.dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:16.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - gcc-5 \ - g++-5 \ - libssl-dev \ - git \ - ca-certificates \ - python3 \ - python3-requests \ - cmake \ - ninja-build \ - valgrind \ - mysql-client && \ - ln -s /usr/bin/g++-5 /usr/bin/g++ && \ - ln -s /usr/bin/gcc-5 /usr/bin/gcc && \ - ln -s /usr/bin/python3 /usr/bin/python diff --git a/tools/docker/build-gcc6.dockerfile b/tools/docker/build-gcc6.dockerfile deleted file mode 100644 index 0f3e16b9f..000000000 --- a/tools/docker/build-gcc6.dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:18.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - gcc-6 \ - g++-6 \ - libssl-dev \ - git \ - ca-certificates \ - python3 \ - python3-requests \ - cmake \ - ninja-build \ - valgrind \ - gpg \ - gpg-agent \ - mysql-client && \ - ln -s /usr/bin/g++-6 /usr/bin/g++ && \ - ln -s /usr/bin/gcc-6 /usr/bin/gcc && \ - ln -s /usr/bin/python3 /usr/bin/python - diff --git a/tools/docker/build-noopenssl.dockerfile b/tools/docker/build-noopenssl.dockerfile deleted file mode 100644 index 87a878d05..000000000 --- a/tools/docker/build-noopenssl.dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -FROM ubuntu:22.04 - -RUN \ - apt-get update && \ - apt-get --no-install-recommends -y install \ - ca-certificates \ - g++ \ - git \ - cmake \ - ninja-build \ - cmake \ - python3 \ - python-is-python3 \ - mysql-client - diff --git a/tools/docker/install_build_docs.sh b/tools/docker/install_build_docs.sh deleted file mode 100644 index 84c66958f..000000000 --- a/tools/docker/install_build_docs.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -set -e -GLOBIGNORE=".:.." -export DEBIAN_FRONTEND=noninteractive - -# Install dependencies. rsync is needed by the GitHub action to upload the pages -apt-get update -apt-get install --no-install-recommends -y \ - doxygen \ - xsltproc \ - wget \ - ca-certificates \ - g++ \ - python3 \ - python-is-python3 \ - python3-jinja2 \ - rsync \ - git \ - unzip - -# Install docbook XSL stylesheets -mkdir -p $DOCBOOK_XSL_DIR -cd $DOCBOOK_XSL_DIR -wget -q https://github.com/docbook/xslt10-stylesheets/releases/download/snapshot%2F2020-06-03/docbook-xsl-snapshot.zip -unzip -o -qq docbook-xsl-snapshot.zip -mv docbook-xsl-snapshot/* . -rmdir docbook-xsl-snapshot -rm docbook-xsl-snapshot.zip - -# Install docbook DTD -mkdir -p $DOCBOOK_DTD_DIR -cd $DOCBOOK_DTD_DIR -wget -q http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip -unzip -o -qq docbook-xml-4.2.zip -rm docbook-xml-4.2.zip diff --git a/tools/docker/mariadb.dockerfile b/tools/docker/mariadb.dockerfile deleted file mode 100644 index 9d681cea6..000000000 --- a/tools/docker/mariadb.dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -ARG BASE_IMAGE_VERSION - -FROM mariadb:${BASE_IMAGE_VERSION} - -ENV MYSQL_ALLOW_EMPTY_PASSWORD=1 -ENV MYSQL_ROOT_PASSWORD= - -COPY tools/docker/unix-socket.cnf /etc/mysql/conf.d/ -COPY tools/docker/ssl.cnf /etc/mysql/conf.d/ -COPY tools/ssl/*.pem /etc/ssl/certs/mysql/ - -# Custom entry point to correctly set UNIX socket permissions, even if using volumes -RUN < /mariadb_entrypoint.sh -chown -R mysql:mysql /var/run/mysqld -/bin/bash /usr/local/bin/docker-entrypoint.sh mariadbd -EOF - - -ENTRYPOINT ["/bin/bash", "/mariadb_entrypoint.sh"] diff --git a/tools/docker/mysql.dockerfile b/tools/docker/mysql.dockerfile deleted file mode 100644 index 9fed7d4b0..000000000 --- a/tools/docker/mysql.dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -ARG BASE_IMAGE_VERSION - -FROM mysql:${BASE_IMAGE_VERSION} - -# Must appear after FROM, otherwise its value gets cleared -ARG ENTRYPOINT_ARGS - -ENV MYSQL_ALLOW_EMPTY_PASSWORD=1 -ENV MYSQL_ROOT_PASSWORD= - -COPY tools/docker/ssl.cnf /etc/mysql/conf.d/ -COPY tools/ssl/*.pem /etc/ssl/certs/mysql/ - -# Custom entry point to correctly set UNIX socket permissions, even if using volumes -RUN < /mysql_entrypoint.sh -chown -R mysql:mysql /var/run/mysqld -/bin/bash /usr/local/bin/docker-entrypoint.sh mysqld ${ENTRYPOINT_ARGS} -EOF - -ENTRYPOINT ["/bin/bash", "/mysql_entrypoint.sh"] \ No newline at end of file diff --git a/tools/docker/ssl.cnf b/tools/docker/ssl.cnf deleted file mode 100644 index 0119fd051..000000000 --- a/tools/docker/ssl.cnf +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -[mysqld] -ssl-ca=/etc/ssl/certs/mysql/ca-cert.pem -ssl-cert=/etc/ssl/certs/mysql/server-cert.pem -ssl-key=/etc/ssl/certs/mysql/server-key.pem diff --git a/tools/docker/unix-socket.cnf b/tools/docker/unix-socket.cnf deleted file mode 100644 index d42c89aa7..000000000 --- a/tools/docker/unix-socket.cnf +++ /dev/null @@ -1,11 +0,0 @@ -# -# Copyright (c) 2019-2025 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) -# -# Distributed under the Boost Software License, Version 1.0. (See accompanying -# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# - -# MariaDB latest versions changed this default value - -[mysqld] -socket=/var/run/mysqld/mysqld.sock diff --git a/tools/scripts/build_unix_local.sh b/tools/scripts/build_unix_local.sh index 46e110a5d..14d3e374c 100755 --- a/tools/scripts/build_unix_local.sh +++ b/tools/scripts/build_unix_local.sh @@ -11,17 +11,16 @@ set -e repo_base=$(realpath $(dirname $(realpath $0))/../..) BK=cmake -IMAGE=build-cmake3_8 -SHA=e9696175806589fc91e160399eedeac8fdc88c68 +IMAGE=build-cmake3_8:1 CONTAINER=builder-$IMAGE -FULL_IMAGE=ghcr.io/anarthal-containers/$IMAGE:$SHA -DB=mysql-8.4.1 +FULL_IMAGE=ghcr.io/anarthal/cpp-ci-containers/$IMAGE +DB=mysql-8_4_1:1 docker start $DB || docker run -d \ --name $DB \ -v /var/run/mysqld:/var/run/mysqld \ -p 3306:3306 \ - ghcr.io/anarthal-containers/ci-db:$DB-$SHA + ghcr.io/anarthal/cpp-ci-containers/$DB docker start $CONTAINER || docker run -dit \ --name $CONTAINER \ -v "$repo_base:/opt/boost-mysql" \