Skip to content

Add CI images for clang with libstdc++#214

Merged
Bronek merged 1 commit into
mainfrom
bronek/ci-libstdcxx
May 28, 2026
Merged

Add CI images for clang with libstdc++#214
Bronek merged 1 commit into
mainfrom
bronek/ci-libstdcxx

Conversation

@Bronek
Copy link
Copy Markdown
Member

@Bronek Bronek commented May 28, 2026

No description provided.

@Bronek Bronek merged commit d3207e0 into main May 28, 2026
2 checks passed
@sonarqubecloud
Copy link
Copy Markdown

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 28, 2026

🤖 Augment PR Summary

Summary: This PR extends the CI image build pipeline to add Clang images that link against libstdc++ in addition to the existing libc++-based Clang images.

Changes:

  • Enhances the build-ci-image composite action with file and target inputs, and improves input documentation.
  • Updates ci-build.yml to use a shared build context (ci/build) with per-compiler Dockerfiles and per-target multi-stage builds.
  • Adds new matrix entries clang-libstdcxx:21 and clang-libstdcxx:22 and publishes them as separate CI images.
  • Refactors the Clang Dockerfile into a base stage plus clang and clang-libstdcxx target stages.
  • Extracts Catch2 build/install logic into a reusable ci/build/build-catch.sh script and reuses it from both GCC and Clang images.
  • Adds ci/.gitignore intended to keep ci/build tracked despite the repo-level build/ ignore rule.

Technical Notes: The workflow now selects the Docker build stage via target (e.g. clang-libstdcxx) while still parameterizing compiler/debian versions via build args.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 4 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

build_args:
default: null
required: false
description: Build arguments to pass to docker build, e.g. "GCC_RELEASE=16,DEBIAN_VERSION=trixie".
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(.github/actions/build-ci-image/action.yml:22) The build_args example uses comma-separated values (e.g. GCC_RELEASE=16,DEBIAN_VERSION=trixie), but docker/build-push-action treats build-args as a newline-separated list; following the example could pass a single malformed build-arg instead of multiple.

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

description: A title to include in the image metadata, e.g. "build-gcc-16".
push:
default: false
default: 'false'
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(.github/actions/build-ci-image/action.yml:43) Composite action inputs are strings, so if: ${{ inputs.push }} will treat the literal 'false' as truthy; the "Export digest"/"Upload digest" steps may run even when pushing is disabled.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Comment thread ci/.gitignore
@@ -0,0 +1 @@
!build
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(ci/.gitignore:1) Because the repo-level .gitignore ignores build/ (which matches ci/build/**), !build re-includes only the directory entry; new files under ci/build can still remain ignored unless you also re-include its contents.

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Comment thread ci/build/clang/Dockerfile
cmake --build build/ --target install ;\
cd /work ;\
rm -rf ${FILE} Catch2-${CATCH_RELEASE}
sh /work/build-catch.sh ;\
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(ci/build/clang/Dockerfile:52) build-catch.sh declares #!/bin/bash but is executed via sh, so adding any bash-specific syntax later would break the image build in a non-obvious way.

Severity: low

Other Locations
  • ci/build/clang/Dockerfile:70
  • ci/build/gcc/Dockerfile:61

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant