@codedependant/semantic-release-docker 6.1.1 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Semantic Release Docker
2
2
 
3
+ # [8.0.0](https://github.com/esatterwhite/semantic-release-docker/compare/v7.0.0...v8.0.0) (2026-08-29)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **image**: the allow the provenance flags to be passed through [ccb318d](https://github.com/esatterwhite/semantic-release-docker/commit/ccb318d9bc88b32cab721b81c415fcd350b26d73) - Eric Satterwhite, closes: [#64](https://github.com/esatterwhite/semantic-release-docker/issues/64)
9
+
10
+
11
+ ### Chores
12
+
13
+ * **compose**: regenerate ssl certs for compose [a8f9b1a](https://github.com/esatterwhite/semantic-release-docker/commit/a8f9b1aca29b2377dd661d6738efe58575f2a9ff) - Eric Satterwhite
14
+
15
+
16
+ ### **BREAKING CHANGES**
17
+
18
+ * **image:** boolean flags ([secure]) are no longer stripped
19
+ * **image:** the provenance flag is no longer removed
20
+
21
+ # [7.0.0](https://github.com/esatterwhite/semantic-release-docker/compare/v6.1.1...v7.0.0) (2026-04-29)
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **docker**: specify an output type during buildx dry run [6508e76](https://github.com/esatterwhite/semantic-release-docker/commit/6508e76483347c51cf3a32b40e8fd3ab2fabdc20) - Eric Satterwhite
27
+
28
+
29
+ ### **BREAKING CHANGES**
30
+
31
+ * **docker:** buildx dry-run will specifiy --output type=cacheonly
32
+
3
33
  ## [6.1.1](https://github.com/esatterwhite/semantic-release-docker/compare/v6.1.0...v6.1.1) (2026-04-07)
4
34
 
5
35
 
package/README.md CHANGED
@@ -73,6 +73,25 @@ Platform specific builder must be setup and selected for this plugin to utilize
73
73
  > and normal docker commands targeting those images will not work.
74
74
  > The `dockerVerifyCmd` behavior will only trigger a build and is unable to execute local command
75
75
 
76
+ #### Provenance Attestations
77
+
78
+ When pushing to a registry, [buildx][] attaches a [provenance attestation][provenance] (`mode=min`) to
79
+ the image index by default. This adds extra `unknown/unknown` manifests to the index, which some
80
+ registries and container runtimes reject outright - notably AWS Lambda container images.
81
+
82
+ Provenance (and SBOM) attestations can be configured via `dockerBuildFlags`:
83
+
84
+ ```javascript
85
+ {
86
+ dockerBuildFlags: {
87
+ provenance: false
88
+ , sbom: false
89
+ }
90
+ }
91
+ ```
92
+
93
+ Alternatively, set `BUILDX_NO_DEFAULT_ATTESTATIONS=true` in the environment the release runs in.
94
+
76
95
  ### Build Arguments
77
96
 
78
97
  By default several build arguments will be included when the docker images is being built.
@@ -327,3 +346,4 @@ $ openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -o
327
346
  [Number]: https://mdn.io/number
328
347
  [--cache-from]: https://docs.docker.com/engine/reference/commandline/build/#cache-from
329
348
  [buildx]: https://docs.docker.com/reference/cli/docker/buildx/build
349
+ [provenance]: https://docs.docker.com/build/metadata/attestations/slsa-provenance/#create-provenance-attestations
@@ -155,6 +155,12 @@ class Image {
155
155
  }
156
156
 
157
157
  for (const item of value) {
158
+ // booleans must use the --flag=value form so the value is not
159
+ // dropped as falsey when the command is assembled
160
+ if (typeof item === 'boolean') {
161
+ output.push(`${normalized}=${item}`)
162
+ continue
163
+ }
158
164
  output.push(normalized, item)
159
165
  }
160
166
  }
@@ -195,7 +201,6 @@ class Image {
195
201
 
196
202
  get buildx_cmd() {
197
203
  if (!this.is_buildx) return
198
- this.opts.flags.delete('provenance') // incompatible with load/push
199
204
  this.opts.flags.delete('output') // alias of load/push
200
205
  this.opts.flags.delete('load')
201
206
  this.opts.flags.set('platform', [this.opts.platform.join(',')])
@@ -203,6 +208,7 @@ class Image {
203
208
  this.flag('pull', null)
204
209
  if (this.opts.dry_run || !this.opts.publish) {
205
210
  this.opts.flags.delete('push')
211
+ this.flag('output', 'type=cacheonly')
206
212
  } else {
207
213
  this.flag('push', null)
208
214
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@codedependant/semantic-release-docker",
3
3
  "private": false,
4
- "version": "6.1.1",
4
+ "version": "8.0.0",
5
5
  "description": "docker package",
6
6
  "main": "index.js",
7
7
  "files": [
@@ -23,7 +23,7 @@
23
23
  "lint": "eslint .",
24
24
  "lint:fix": "npm run lint -- --fix",
25
25
  "local": "env $(cat env/local.env)",
26
- "pretap": "npm run lint",
26
+ "pretap": "tap build && npm run lint",
27
27
  "release": "npx semantic-release",
28
28
  "release:dry": "npm run release -- --no-ci --dry-run --branches=${BRANCH_NAME:-main}"
29
29
  },
@@ -44,6 +44,9 @@
44
44
  "browser": false,
45
45
  "show-full-coverage": true,
46
46
  "output-file": ".tap-output",
47
+ "plugin": [
48
+ "!@tapjs/typescript"
49
+ ],
47
50
  "files": [
48
51
  "test/unit",
49
52
  "test/integration"