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
-`helm_version` (required): Helm version from `load-versions`
25
+
-`apidiff_version` (optional): apidiff version from `load-versions`; when set, installs apidiff and runs `make api-diff` (default: empty, which skips both steps)
26
+
27
+
Callers that set `apidiff_version` must check out full history with
28
+
`fetch-depth: 0` so `make api-diff` can resolve a reachable stable release tag.
29
+
16
30
#### `security-scan/`
17
31
**Purpose**: Anchore/Grype vulnerability scanning with SARIF upload
18
32
**When to use**: Security validation in CI/CD pipelines
Copy file name to clipboardExpand all lines: .github/actions/go-test/action.yml
+18Lines changed: 18 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,10 @@ inputs:
30
30
helm_version:
31
31
description: 'Helm version pinned in .settings.yaml (testing_tools.helm, via load-versions) — required by the argocd-helm live-render tests, which fail (not skip) in CI when helm is missing'
32
32
required: true
33
+
apidiff_version:
34
+
description: 'Optional apidiff version pinned in .settings.yaml (linting.apidiff, via load-versions); leave empty to skip the SDK API compatibility check'
35
+
required: false
36
+
default: ''
33
37
34
38
runs:
35
39
using: 'composite'
@@ -71,9 +75,23 @@ runs:
71
75
shell: bash
72
76
run: make test
73
77
78
+
- name: Install API-diff tool
79
+
if: inputs.apidiff_version != ''
80
+
shell: bash
81
+
env:
82
+
APIDIFF_VERSION: ${{ inputs.apidiff_version }}
83
+
run: |
84
+
set -euo pipefail
85
+
GOFLAGS= go install "golang.org/x/exp/cmd/apidiff@${APIDIFF_VERSION}"
# This action reports the shared development-tool state, but E2E owns
57
+
# its required-tool contract. Do not make future strict_exact tools
58
+
# outside that contract a prerequisite for every E2E workflow.
59
+
if make tools-check; then
60
+
tools_check_rc=0
61
+
else
62
+
tools_check_rc=$?
63
+
printf '%s\n' "::warning title=Non-gating tool check failed::make tools-check exited with status ${tools_check_rc}; E2E continues because its required-tool contract is narrower."
Copy file name to clipboardExpand all lines: docs/integrator/public-api.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,6 +56,13 @@ The `github.com/NVIDIA/aicr/pkg/client/v1` package is Public (stable). Types
56
56
reachable from this surface are either facade-owned structs or transparent
57
57
aliases — the table below documents which.
58
58
59
+
Transparent aliases extend that stable contract to their target types. The
60
+
automated API-diff gate matches an external named target by package path and
61
+
type name, but does not recursively compare the target's definition. Until
62
+
[#2019](https://github.com/NVIDIA/aicr/issues/2019) resolves this limitation,
63
+
changes to those definitions require manual compatibility review because they
64
+
can affect facade consumers without failing the gate.
65
+
59
66
| Facade symbol | Translates to/from | Notes |
60
67
|---|---|---|
61
68
|`aicr.Snapshot`|`pkg/snapshotter.Snapshot`|**Facade-owned struct**. Public fields are identifying metadata; full measurement payload is preserved in an unexported field for round-trip through `ValidateState`. Use `aicr.WrapSnapshot` to lift a `*snapshotter.Snapshot` loaded externally. |
0 commit comments