Repository navigation
Add SKIP_BUILD_CACHE as CI option via commit message - #13220
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
More details
Combined directives such as [ci: ARM64, SKIP_BUILD_CACHE] enable fresh Gradle task execution while preserving the existing environment-variable override. The reviewer’s targeted checks covered case sensitivity and nonmatching messages without identifying a defect.
🤖 Bits Code Review · Commit d06027e
SKIP_BUILD_CACHE as CI option via commit message
There was a problem hiding this comment.
For the reader: I think this is important to consider SKIP_BUILD_CACHE as a opt-in diagnostic falg. While potentially useful, it has the following behavior that may not be suitable for daily use or release.
-
validate_buildIn #12604 this job is a matrix that validates both runs with build cache and without. But having
SKIP_BUILD_CACHEmakevalidate_buildalways run without build cache (whioch can be confusing).i.e. the matrix no longer covers cached versus uncached.
-
Runtime impact
Today there's no shared Gradle build cache across pipelines, it's being worked one as part of #12604. What happens today, i.e. before #12604, GitLab passes prepared outputs between jobs within a pipeline using archives keyed by
$CI_PIPELINE_ID-$CACHE_TYPE.The initial
buildandbuild_testsjobs could push to these gitlab cache. But when the S3 Build cache will be enabled, this intra pipeline won't be available either, forcing additional work downstream:- Jobs will have to do again compilation, code generation, packaging and other selected build dependencies that would normally reuse previous outputs.
- The runtime cost depends on each job's usual reuse. Pipeline duration also depends on whether the affected jobs are on the critical path.
- Note that dependencies and plugin caches remain available, because they are GitLab cache which is untouched by the S3 Build cache changes in #12604.
-
Publishing risk
If a
masteror release pipeline builds a commit withSKIP_BUILD_CACHE, thedeploy_to_maven_centraljob will then also receives--no-build-cache --rerun-tasks. And itspublishToSonatypeinvocation forces the archive-producing tasks to execute again.And unfortunately the
validate_buildcomparison won;t cover properly the files produced by that publication rebuild anymore. In short : if output is non-deterministic, the published artifacts can differ from the compared artifacts.Maybe excluding publication from the commit-message could help, or even disabling all publication jobs.
This comment has been minimized.
This comment has been minimized.
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
7b0dfea
into
master
What Does This Do
If
[ci: *SKIP_BUILD_CACHE*]is in the commit message, then force fresh Gradle task execution. This is ignored in publication stages to avoid publishing separately build artifacts.Motivation
Fresh Gradle task execution can be useful when diagnosing failures with reused outputs. The GitLab caches still remain available.
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: https://datadoghq.atlassian.net/browse/APMLP-1897