Skip to content

build(deps): bump ubuntu from 24.04 to 26.04 - #2

Closed
dependabot[bot] wants to merge 16 commits into
mainfrom
dependabot/docker/ubuntu-26.04
Closed

dependabot[bot] wants to merge 16 commits into
mainfrom
dependabot/docker/ubuntu-26.04

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 17, 2026 •

Copy link
Copy Markdown
Contributor

Bumps ubuntu from 24.04 to 26.04.

@dependabot @github

dependabot Bot commented on behalf of github Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Labels

The following labels could not be found: dependencies, docker. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

Bumps ubuntu from 24.04 to 26.04.

---
updated-dependencies:
- dependency-name: ubuntu
  dependency-version: '26.04'
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/docker/ubuntu-26.04 branch from 5cc7d2a to 060b047 Compare August 1, 2026 10:26
Why:
- ubuntu:26.04 installs clang-20 via the unversioned `clang` metapackage,
  so the Conan profile's hardcoded `clang-18`/`clang++-18` binaries were
  missing from PATH, causing conan dependency builds to fail.

What changed:
- Dockerfile: replaced `clang`/`clang-tidy` with `clang-18`/`clang-tidy-18`
- Dockerfile: corrected stale `ubuntu:24.04` reference in header comment

Compatibility:
- Backward-compatible because only the package installation command changes;
  the compiler version used in builds remains clang-18 as before.

Validation:
- Resolves the c-ares/1.34.8 CMake configure failure seen in CI
  (`CMAKE_C_COMPILER: clang-18 not found in PATH`)
…nd layer export

- Add FROM scratch AS ccache-seed (overridden by --build-context ccache-seed=.ccache
  in CI) so a warm ccache from the previous run is injected before compile.
- Replace --mount=type=cache (not exported by buildx --cache-to type=local) with
  a direct layer write so ccache files survive in the builder layer and can be
  extracted.
- Add FROM scratch AS ccache-export; CI builds --target ccache-export --output to
  harvest the updated ccache and store it as a GitLab cache artifact (.ccache).
- Print ccache -s stats after compile for observability.
- .gitlab-ci.yml: add .ccache to cache paths, pass --build-context on both buildx
  calls, rotate .ccache-new -> .ccache after export.

Judgment call: storing ccache in the Docker layer rather than type=cache makes it
exportable in DinD environments where the BuildKit builder container is ephemeral.
Cache key stabilises after two warm-start runs (seed content is part of the key).
…ilds

Add --mount=type=cache,target=/root/.conan2/p,id=conan-cache to the conan
install RUN so already-built packages (gRPC, protobuf, abseil, etc.) are
reused when conanfile.py changes trigger a conan-deps layer invalidation.

The mount is effective on persistent BuildKit builder instances; in ephemeral
DinD runners it still prevents redundant rebuilds within a single pipeline job.
…rallel job

Remove RUN run-clang-tidy-18 from the verified Dockerfile stage so the main
docker-build pipeline (conan-deps -> builder -> ctest -> final) no longer
blocks on linting.

Add a parallel clang-tidy job in the same docker stage that builds --target
builder (hitting the shared .buildx-cache from the previous run) and runs
run-clang-tidy-18 inside the builder container. Both jobs execute concurrently;
total pipeline wall-time is max(docker-build, clang-tidy) instead of their sum.

The clang-tidy cache policy is pull-only so it never races with docker-build's
pull-push on .buildx-cache and .ccache.
@vlantonov vlantonov closed this Sep 2, 2026
@dependabot @github

dependabot Bot commented on behalf of github Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/docker/ubuntu-26.04 branch September 2, 2026 18:01
@vlantonov
vlantonov restored the dependabot/docker/ubuntu-26.04 branch September 3, 2026 17:03
@vlantonov
vlantonov deleted the dependabot/docker/ubuntu-26.04 branch September 3, 2026 17:05
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.

2 participants