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
feat: [INFRA-563] Add Maven GAV Scan and metadata output (#251)
* feat: [INFRA-563] Add Maven GAV Scan and metadata output
* feat: [INFRA-563] Add metadata as properties
* fix: [INFRA-563] Suppress test for NuGet if not needed
* fix: [INFRA-563] Skip sign verify if no package
* fix(tests): [INFRA-563] Ignore manifest and name check calls
* feat(gav scan): [INFRA-563] Update readme
* fix: [INFRA-563] Align workflows and update docs
|`dry-run`| No |`false`| Run without creating the bundle |
19
+
|`bundle-metadata-path`| No |_(empty)_| Path to `.maven-bundle-metadata.json` from detect-artifacts; when present, applied to the bundle via `jf release-bundle-annotate` after create |
20
+
|`entrypoint-path`| No |`.github/workflows/create-release-bundle/entrypoint.sh`| Path to the entrypoint script |
20
21
21
22
## Example Usage
22
23
@@ -46,3 +47,5 @@ steps:
46
47
## Combining All Three Bundle Actions
47
48
48
49
For the full lifecycle (delete, create, promote) in a single job, see the [example composable matrix workflow](../../workflows/example_composable-matrix.yaml).
50
+
51
+
To forward Maven detection hints onto the release bundle, pass the path from detect-artifacts (e.g. `${{ steps.detect.outputs.bundle-metadata-path }}`) as `bundle-metadata-path` when calling this action or `reusable_create-release-bundle.yaml`.
Copy file name to clipboardExpand all lines: .github/actions/detect-artifacts/README.md
+13-2Lines changed: 13 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Detect artifact types
2
2
3
-
Runs [`detect_types.sh`](../../workflows/deploy-artifacts/detect_types.sh): content-based detection for ambiguous archives (npm tarballs, PyPI sdists, Go module zips, Helm charts) plus structured passes for PyPI wheels, NuGet packages, Maven POMs, and Docker bundle metadata, and writes `structured_build_artifacts/` plus a manifest, matching the deploy entrypoint’s detection phase. JFrog/build metadata is not required because detection only inspects file contents and copies into the structured tree.
3
+
Runs [`detect_types.sh`](../../workflows/deploy-artifacts/detect_types.sh): content-based detection for ambiguous archives (npm tarballs, PyPI sdists, Go module zips, Helm charts) plus structured passes for PyPI wheels, NuGet packages, Maven POMs, and Docker bundle metadata, and writes `structured_build_artifacts/` plus a manifest, matching the deploy entrypoint’s detection phase. After scanning, it writes **`.maven-bundle-metadata.json`** (unique Maven GAV count, multi-package flag, aggregator presence, flatten heuristics) under the same structured directory. JFrog/build metadata is not required because detection only inspects file contents and copies into the structured tree.
4
4
5
5
## Prerequisites
6
6
@@ -23,8 +23,18 @@ Runner tools used by detectors: `jq`, `tar`, `unzip`, `xmllint` (for Maven POM d
|`structured-artifacts-dir`| Relative path to `structured_build_artifacts/` (per-type subdirs and copied files). If `working-dir` is set, this path is rooted under that directory (e.g. `my-job/structured_build_artifacts`). |
25
25
|`manifest-path`| Relative path to the TSV manifest (`.manifest`): one row per primary artifact with columns `path` and `type`. Companion files are gathered on disk but not listed here. |
26
+
|`bundle-metadata-path`| Relative path to `.maven-bundle-metadata.json` (see table below). |
26
27
27
-
In the calling workflow, give the `uses` step an `id` (for example `id: detect-artifacts`), then reference `${{ steps.detect-artifacts.outputs.structured-artifacts-dir }}` and `${{ steps.detect-artifacts.outputs.manifest-path }}`. You can also forward them from `jobs.<job_id>.outputs`.
|`is_multi_package`|`true` when the tree has more than one distinct Maven GAV (multi-artifact release). |
33
+
|`maven_module_count`| Number of unique Maven `(groupId, artifactId, version)` coordinates found in scanned POMs. |
34
+
|`maven_aggregator_present`|`true` if any scanned POM is a reactor root (`packaging``pom` with `<modules>`). |
35
+
|`is_flattened`|`true` if any POM looks flattened (flatten-plugin marker and/or resolved, no-`${}` consumer-style heuristic). |
36
+
37
+
After detection, `.maven-bundle-metadata.json` can be passed to [create-release-bundle](../create-release-bundle/README.md) as `bundle-metadata-path` so those fields are set on the release bundle version (`jf release-bundle-annotate`).
|`jf-project`| JFrog Artifactory project name | Yes | - |
14
+
|`jf-build-names`| Comma-separated list of `build-name:version` pairs to include (e.g. `"app-build:1.2.3,client-build:2.1.0"`) | Yes | - |
15
+
|`jf-bundle-name`| Name for the release bundle | Yes | - |
16
+
|`version`| Version of the release bundle | Yes | - |
17
+
|`jf-url`| JFrog Artifactory URL | No |`https://artifact.aerospike.io`|
18
+
|`oidc-provider-name`| OIDC provider name for authentication | No |`gh-aerospike`|
19
+
|`oidc-audience`| OIDC audience for authentication | No |`aerospike`|
20
+
|`runs-on`| The runner to use for the build | No |`ubuntu-22.04`|
21
+
|`gh-checkout-path`| Directory to checkout the shared-workflows repository into | No |`shared-workflows`|
22
+
|`gh-workflows-ref`| Git ref for shared-workflows (**should match `uses:`**) | Yes | - |
23
+
|`dry-run`| Whether to run in dry-run mode | No |`false`|
24
+
|`bundle-metadata-path`| Optional path to `.maven-bundle-metadata.json` (e.g. detect-artifacts `bundle-metadata-path`). Applied as bundle properties after create. | No |_(empty)_|
25
+
|`gh-bundle-metadata-artifact-name`| When set, downloads this GitHub artifact and uses the contained `.maven-bundle-metadata.json` (e.g. `reusable_deploy-artifacts` output `bundle-metadata-artifact-name`). Overrides `bundle-metadata-path` when both are set. | No |_(empty)_|
0 commit comments