You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Description
Fix the `cicd_8-manual-deploy.yml` workflow that was failing with
invalid input parameters, and improve CI/CD infrastructure consistency
across all workflows: run-name visibility, Docker image tag
architecture, nightly build repeatability and tag ordering, and CLI
artifact deployment control.
## Changes
### Bug Fixes (cicd_8 manual deploy)
- **Fix invalid inputs**: use `change-detection='disabled'` instead of
the invalid `validation-level='none'`
- **Make `ref` input optional**: defaults to the dispatch branch,
preserving legacy behavior and fixing the concurrency group fallback
when `ref` is empty
### Run-Name Improvements (all workflows)
- **Add `run-name` to all CI/CD workflows** (`cicd_1` through `cicd_8`)
so every run is identifiable in the GitHub Actions UI without opening it
- **Fix expression syntax**: switch run-name YAML strings from
single-quoted to double-quoted so that GitHub Actions expression parser
receives properly single-quoted string literals inside `${{ }}` — fixes
`Unexpected symbol: '"' in expression` validation error (cicd_3, cicd_4,
cicd_6, cicd_7, cicd_8)
- **Always show ref in manual deploy run-name**: fall back to
`github.ref_name` when the `ref` input is empty, so the run name is
always `Manual [branch-name]` rather than just `Manual`
### Nightly Build Repeatability (cicd_4)
- **New `setup` job** that determines the commit to build from before
any other jobs run
- **Default behavior (scheduled and manual dispatch)**: finds the last
commit on `main` at or before midnight UTC. This ensures repeatability —
re-running a nightly later in the day to investigate a failure produces
the exact same build as the scheduled run. The date tag
(`nightly_YYYYMMDD`) labels the day covered (yesterday), not the day the
workflow runs.
- **New `use-latest-commit` dispatch input**: set to `true` to build
from the current `HEAD` of `main` instead, useful when you need to pick
up commits made after midnight
- **All downstream jobs** (`build`, `deployment`, `finalize`) now depend
on `setup` and pass through its `build-ref` and `tag-date` outputs
### Docker Image Tag Architecture (nightly + all builds)
- **Redesign tag inputs on `deploy-docker` action**: replace raw
`type=raw,value=...,enable=` format strings with semantic
`identifier-tag` / `custom-tag` inputs — callers express intent, not
bake-meta syntax
- **Centralize tag computation**: `Compute Docker Tags` step
consolidates all tag logic in clear bash `if/else`, replacing the
previous `Compute Docker Base Tag` + scattered `enable=` expressions
- **Fix tag ordering**: identifier appears before suffix
(`nightly_20250218_java25`, not `nightly_java25_20250218`), consistent
with the release pattern
- **Retain `extra-tags`** as an escape hatch for advanced cases
### CLI Artifact Deployment Control
- **Add `deploy-cli` boolean input** to the deployment phase composite
workflow (default: `false`); replaces the previous hardcoded
`environment != 'manual'` name check
- **Explicit opt-in pattern**: trunk, nightly, and release callers set
`deploy-cli: true`; manual deploys omit it and default to `false`,
preventing accidental JFrog publishes from feature-branch builds —
mirrors the same pattern used by `publish-npm-cli` and
`publish-npm-sdk-libs`
- **Restore `publish-npm-sdk-libs`** condition to input-only guard
(environment hardcoding removed)
### Miscellaneous
- **Remove dead code**: `reuse-previous-build` removed from all
deployment-phase calls (only meaningful in the initialize phase)
- **Remove stale `java_version` default** from
`cicd_7-release-java-variant` dispatch input (`'25.0.1-open'` was
outdated); update description to reference the
`RELEASE_JAVA_VARIANT_VERSION` repository variable used by
push-triggered builds
## Files Changed
| File | What changed |
|------|-------------|
| `.github/actions/core-cicd/deployment/deploy-docker/action.yml` | New
`identifier-tag`/`custom-tag` inputs; centralized tag computation |
| `.github/workflows/cicd_1-pr.yml` | Add `run-name` |
| `.github/workflows/cicd_2-merge-queue.yml` | Add `run-name` |
| `.github/workflows/cicd_3-trunk.yml` | Add `run-name` (fixed quotes);
add `deploy-cli: true` |
| `.github/workflows/cicd_4-nightly.yml` | Add `setup` job for commit
pinning; add `use-latest-commit` input; add `run-name` (fixed quotes);
fix tag ordering; add `deploy-cli: true` |
| `.github/workflows/cicd_6-release.yml` | Fix `run-name` quotes; add
`deploy-cli: true` |
| `.github/workflows/cicd_7-release-java-variant.yml` | Fix `run-name`
quotes; remove stale `java_version` default |
| `.github/workflows/cicd_8-manual-deploy.yml` | Fix invalid inputs;
make `ref` optional; fix `run-name` always shows ref |
| `.github/workflows/cicd_comp_deployment-phase.yml` | Add `deploy-cli`
input; replace env-name guard with input guard |
| `.github/workflows/cicd_comp_initialize-phase.yml` | Minor cleanup |
## Testing
- Workflow YAML validates on push (GitHub Actions schema validation)
- Manual deploy workflow (`cicd_8`) can be triggered successfully
end-to-end
- Docker tags produced with correct naming pattern and ordering
- `run-name` displays correctly in GitHub Actions UI for all workflow
types
- CLI artifacts are not published when running manual/feature-branch
builds
- Nightly default behavior pins to the midnight UTC commit, not current
HEAD
Closes#34689
**Issue:** [DEFECT] Manual deploy workflow cicd_8manualdeploy
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: .github/actions/core-cicd/deployment/deploy-docker/action.yml
+25-2Lines changed: 25 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -22,8 +22,9 @@ inputs:
22
22
description: 'The commit id that triggered the build'
23
23
required: true
24
24
ref:
25
-
description: 'The branch or type of build to tag the image with'
26
-
required: true
25
+
description: 'The branch or type of build to tag the image with. Only used when docker-use-ref is true; when docker-use-ref is false the version input drives all tags and this is ignored.'
26
+
required: false
27
+
default: ''
27
28
docker-use-ref:
28
29
description: 'The branch or type of build to tag the image with'
29
30
required: false
@@ -65,6 +66,18 @@ inputs:
65
66
description: 'Pull image before building'
66
67
required: false
67
68
default: 'false'
69
+
identifier-tag:
70
+
description: 'Optional mutable alias tag managed by the deployment phase (e.g., nightly_20250218_java25, manual_issue-123_java25). Applied when non-empty.'
71
+
required: false
72
+
default: ''
73
+
custom-tag:
74
+
description: 'Optional custom alias tag chosen by the developer (e.g., modernization, java25-testing). Applied when non-empty.'
75
+
required: false
76
+
default: ''
77
+
extra-tags:
78
+
description: 'Escape hatch: additional tags in docker/metadata-action format (type=raw,value=...), one per line. Use for cases not covered by identifier-tag or custom-tag.'
79
+
required: false
80
+
default: ''
68
81
outputs:
69
82
tags:
70
83
description: "The tags that were used to build the image"
description: 'Use current HEAD of main instead of the midnight UTC commit. Set to true when you want to pick up commits made after midnight rather than reproduce the scheduled run.'
63
+
type: boolean
64
+
default: false
52
65
53
66
jobs:
67
+
# Setup job - determines the commit to build from.
68
+
# Default (scheduled and manual): last commit on main at or before midnight UTC for repeatability.
69
+
# Manual with use-latest-commit=true: current HEAD of main.
description: 'Java version to build (SDKMAN format, e.g., 25.0.1-open)'
44
-
required: true
44
+
description: 'Java version to build (SDKMAN format, e.g., 25.0.2-ms). Leave empty to use the RELEASE_JAVA_VARIANT_VERSION repository variable (same as push-triggered builds).'
45
+
required: false
45
46
type: string
46
-
default: '25.0.1-open'
47
+
default: ''
47
48
artifact_suffix:
48
49
description: 'Artifact suffix without leading separator (e.g., java25, java25-ms). Separators added automatically: dash (-) for Maven artifacts, underscore (_) for Docker tags. If not set, derived from java-version major (e.g., java25).'
0 commit comments