Compare commits
	
		
			50 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					5176d81f87 | ||
| 
						 | 
					ec10ae8f96 | ||
| 
						 | 
					597e8fc414 | ||
| 
						 | 
					e050dfa622 | ||
| 
						 | 
					d1fcdb6ee0 | ||
| 
						 | 
					a6067b9a1a | ||
| 
						 | 
					1ca370b3a9 | ||
| 
						 | 
					2c95ebed5c | ||
| 
						 | 
					d189d0ef33 | ||
| 
						 | 
					a254f8ca60 | ||
| 
						 | 
					94dae62c78 | ||
| 
						 | 
					267a69d6cc | ||
| 
						 | 
					f23fb2a7cb | ||
| 
						 | 
					ef76d100ee | ||
| 
						 | 
					522345f555 | ||
| 
						 | 
					1a162644f9 | ||
| 
						 | 
					9eea548195 | ||
| 
						 | 
					11c2faaa9e | ||
| 
						 | 
					de2365af33 | ||
| 
						 | 
					bca5082da7 | ||
| 
						 | 
					e7aab408d9 | ||
| 
						 | 
					63eb7590c6 | ||
| 
						 | 
					53ec48606f | ||
| 
						 | 
					fe9d9f1d0c | ||
| 
						 | 
					ad37ba1ad0 | ||
| 
						 | 
					aabbd3f4d7 | ||
| 
						 | 
					9c7c277413 | ||
| 
						 | 
					987902144c | ||
| 
						 | 
					709dde20a7 | ||
| 
						 | 
					ec2d640ea6 | ||
| 
						 | 
					3dc0757c66 | ||
| 
						 | 
					dcb0699155 | ||
| 
						 | 
					a3c06e8698 | ||
| 
						 | 
					e75138d857 | ||
| 
						 | 
					9552610e81 | ||
| 
						 | 
					99c83871c1 | ||
| 
						 | 
					af64c4e18f | ||
| 
						 | 
					6fdff4fb09 | ||
| 
						 | 
					9e59c61762 | ||
| 
						 | 
					49351df2b7 | ||
| 
						 | 
					723ff6ffad | ||
| 
						 | 
					15560696de | ||
| 
						 | 
					57e1d34ac3 | ||
| 
						 | 
					309982ebc9 | ||
| 
						 | 
					9476c25b2a | ||
| 
						 | 
					97be5a4928 | ||
| 
						 | 
					9cac6c8ea0 | ||
| 
						 | 
					31159d49c0 | ||
| 
						 | 
					07e1c3e148 | ||
| 
						 | 
					f7febd621d | 
							
								
								
									
										
											BIN
										
									
								
								.github/build-push-summary.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.github/build-push-summary.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 81 KiB  | 
							
								
								
									
										98
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										98
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							@@ -1345,7 +1345,30 @@ jobs:
 | 
			
		||||
        run: |
 | 
			
		||||
          docker image inspect localhost:5000/name/app:latest
 | 
			
		||||
 | 
			
		||||
  disable-summary:
 | 
			
		||||
  summary-disable:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
          path: action
 | 
			
		||||
      -
 | 
			
		||||
        name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
 | 
			
		||||
          driver-opts: |
 | 
			
		||||
            image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
 | 
			
		||||
      -
 | 
			
		||||
        name: Build
 | 
			
		||||
        uses: ./action
 | 
			
		||||
        with:
 | 
			
		||||
          file: ./test/Dockerfile
 | 
			
		||||
        env:
 | 
			
		||||
          DOCKER_BUILD_SUMMARY: false
 | 
			
		||||
 | 
			
		||||
  summary-disable-deprecated:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
@@ -1367,3 +1390,76 @@ jobs:
 | 
			
		||||
          file: ./test/Dockerfile
 | 
			
		||||
        env:
 | 
			
		||||
          DOCKER_BUILD_NO_SUMMARY: true
 | 
			
		||||
 | 
			
		||||
  summary-not-supported:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
          path: action
 | 
			
		||||
      -
 | 
			
		||||
        name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          version: v0.12.1
 | 
			
		||||
          driver-opts: |
 | 
			
		||||
            image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
 | 
			
		||||
      -
 | 
			
		||||
        name: Build
 | 
			
		||||
        uses: ./action
 | 
			
		||||
        with:
 | 
			
		||||
          file: ./test/Dockerfile
 | 
			
		||||
 | 
			
		||||
  record-upload-disable:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
          path: action
 | 
			
		||||
      -
 | 
			
		||||
        name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
 | 
			
		||||
          driver-opts: |
 | 
			
		||||
            image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
 | 
			
		||||
      -
 | 
			
		||||
        name: Build
 | 
			
		||||
        uses: ./action
 | 
			
		||||
        with:
 | 
			
		||||
          file: ./test/Dockerfile
 | 
			
		||||
        env:
 | 
			
		||||
          DOCKER_BUILD_RECORD_UPLOAD: false
 | 
			
		||||
 | 
			
		||||
  record-retention-days:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        days:
 | 
			
		||||
          - 2
 | 
			
		||||
          - 0
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        with:
 | 
			
		||||
          path: action
 | 
			
		||||
      -
 | 
			
		||||
        name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          version: ${{ inputs.buildx-version || env.BUILDX_VERSION }}
 | 
			
		||||
          driver-opts: |
 | 
			
		||||
            image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }}
 | 
			
		||||
      -
 | 
			
		||||
        name: Build
 | 
			
		||||
        uses: ./action
 | 
			
		||||
        with:
 | 
			
		||||
          file: ./test/Dockerfile
 | 
			
		||||
        env:
 | 
			
		||||
          DOCKER_BUILD_RECORD_RETENTION_DAYS: ${{ matrix.days }}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										55
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										55
									
								
								README.md
									
									
									
									
									
								
							@@ -19,21 +19,7 @@ ___
 | 
			
		||||
  * [Git context](#git-context)
 | 
			
		||||
  * [Path context](#path-context)
 | 
			
		||||
* [Examples](#examples)
 | 
			
		||||
  * [Multi-platform image](https://docs.docker.com/build/ci/github-actions/multi-platform/)
 | 
			
		||||
  * [Secrets](https://docs.docker.com/build/ci/github-actions/secrets/)
 | 
			
		||||
  * [Push to multi-registries](https://docs.docker.com/build/ci/github-actions/push-multi-registries/)
 | 
			
		||||
  * [Manage tags and labels](https://docs.docker.com/build/ci/github-actions/manage-tags-labels/)
 | 
			
		||||
  * [Cache management](https://docs.docker.com/build/ci/github-actions/cache/)
 | 
			
		||||
  * [Export to Docker](https://docs.docker.com/build/ci/github-actions/export-docker/)
 | 
			
		||||
  * [Test before push](https://docs.docker.com/build/ci/github-actions/test-before-push/)
 | 
			
		||||
  * [Local registry](https://docs.docker.com/build/ci/github-actions/local-registry/)
 | 
			
		||||
  * [Share built image between jobs](https://docs.docker.com/build/ci/github-actions/share-image-jobs/)
 | 
			
		||||
  * [Named contexts](https://docs.docker.com/build/ci/github-actions/named-contexts/)
 | 
			
		||||
  * [Copy image between registries](https://docs.docker.com/build/ci/github-actions/copy-image-registries/)
 | 
			
		||||
  * [Update Docker Hub repo description](https://docs.docker.com/build/ci/github-actions/update-dockerhub-desc/)
 | 
			
		||||
  * [SBOM and provenance attestations](https://docs.docker.com/build/ci/github-actions/attestations/)
 | 
			
		||||
  * [Annotations](https://docs.docker.com/build/ci/github-actions/annotations/)
 | 
			
		||||
  * [Reproducible builds](https://docs.docker.com/build/ci/github-actions/reproducible-builds/)
 | 
			
		||||
* [Summaries](#summaries)
 | 
			
		||||
* [Customizing](#customizing)
 | 
			
		||||
  * [inputs](#inputs)
 | 
			
		||||
  * [outputs](#outputs)
 | 
			
		||||
@@ -69,8 +55,6 @@ name: ci
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - 'main'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  docker:
 | 
			
		||||
@@ -108,11 +92,6 @@ expression `{{defaultContext}}`. Here we can use it to provide a subdirectory
 | 
			
		||||
to the default Git context:
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
      -
 | 
			
		||||
        # Setting up Docker Buildx with docker-container driver is required
 | 
			
		||||
        # at the moment to be able to use a subdirectory with Git context
 | 
			
		||||
        name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v3
 | 
			
		||||
      -
 | 
			
		||||
        name: Build and push
 | 
			
		||||
        uses: docker/build-push-action@v6
 | 
			
		||||
@@ -145,8 +124,6 @@ name: ci
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - 'main'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  docker:
 | 
			
		||||
@@ -194,11 +171,31 @@ jobs:
 | 
			
		||||
* [Annotations](https://docs.docker.com/build/ci/github-actions/annotations/)
 | 
			
		||||
* [Reproducible builds](https://docs.docker.com/build/ci/github-actions/reproducible-builds/)
 | 
			
		||||
 | 
			
		||||
## Summaries
 | 
			
		||||
 | 
			
		||||
This action generates a [job summary](https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/)
 | 
			
		||||
that provides a detailed overview of the build execution. The summary shows an
 | 
			
		||||
overview of all the steps executed during the build, including the build inputs
 | 
			
		||||
and eventual errors.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
The summary also includes a link for downloading the build record with
 | 
			
		||||
additional details about the build, including build stats, logs, outputs, and
 | 
			
		||||
more. The build record can be imported to Docker Desktop for inspecting the
 | 
			
		||||
build in greater detail.
 | 
			
		||||
 | 
			
		||||
Summaries are enabled by default, but can be disabled with the
 | 
			
		||||
`DOCKER_BUILD_SUMMARY` [environment variable](#environment-variables).
 | 
			
		||||
 | 
			
		||||
For more information about summaries, refer to the
 | 
			
		||||
[documentation](https://docs.docker.com/go/build-summary/).
 | 
			
		||||
 | 
			
		||||
## Customizing
 | 
			
		||||
 | 
			
		||||
### inputs
 | 
			
		||||
 | 
			
		||||
Following inputs can be used as `step.with` keys
 | 
			
		||||
The following inputs can be used as `step.with` keys:
 | 
			
		||||
 | 
			
		||||
> `List` type is a newline-delimited string
 | 
			
		||||
> ```yaml
 | 
			
		||||
@@ -259,9 +256,11 @@ The following outputs are available:
 | 
			
		||||
 | 
			
		||||
### environment variables
 | 
			
		||||
 | 
			
		||||
| Name                      | Type | Description                                                                                                       |
 | 
			
		||||
|---------------------------|------|-------------------------------------------------------------------------------------------------------------------|
 | 
			
		||||
| `DOCKER_BUILD_NO_SUMMARY` | Bool | If `true`, [build summary](https://docs.docker.com/build/ci/github-actions/build-summary/) generation is disabled |
 | 
			
		||||
| Name                                 | Type   | Default | Description                                                                                                                                                                                                                                                        |
 | 
			
		||||
|--------------------------------------|--------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
 | 
			
		||||
| `DOCKER_BUILD_SUMMARY`               | Bool   | `true`  | If `false`, [build summary](https://docs.docker.com/build/ci/github-actions/build-summary/) generation is disabled                                                                                                                                                 |
 | 
			
		||||
| `DOCKER_BUILD_RECORD_UPLOAD`         | Bool   | `true`  | If `false`, build record upload as [GitHub artifact](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts) is disabled                                                                                                            |
 | 
			
		||||
| `DOCKER_BUILD_RECORD_RETENTION_DAYS` | Number |         | Duration after which build record artifact will expire in days. Defaults to repository/org [retention settings](https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#artifact-and-log-retention-policy) if unset or `0` |
 | 
			
		||||
 | 
			
		||||
## Troubleshooting
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										24
									
								
								dist/licenses.txt
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								dist/licenses.txt
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -2516,6 +2516,30 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
			
		||||
THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
he
 | 
			
		||||
MIT
 | 
			
		||||
Copyright Mathias Bynens <https://mathiasbynens.be/>
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining
 | 
			
		||||
a copy of this software and associated documentation files (the
 | 
			
		||||
"Software"), to deal in the Software without restriction, including
 | 
			
		||||
without limitation the rights to use, copy, modify, merge, publish,
 | 
			
		||||
distribute, sublicense, and/or sell copies of the Software, and to
 | 
			
		||||
permit persons to whom the Software is furnished to do so, subject to
 | 
			
		||||
the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be
 | 
			
		||||
included in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
			
		||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
			
		||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 | 
			
		||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 | 
			
		||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 | 
			
		||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
iconv-lite
 | 
			
		||||
MIT
 | 
			
		||||
Copyright (c) 2011 Alexander Shtuchkin
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@
 | 
			
		||||
  "packageManager": "yarn@3.6.3",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@actions/core": "^1.10.1",
 | 
			
		||||
    "@docker/actions-toolkit": "0.26.2",
 | 
			
		||||
    "@docker/actions-toolkit": "0.35.0",
 | 
			
		||||
    "handlebars": "^4.7.7"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										100
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										100
									
								
								src/main.ts
									
									
									
									
									
								
							@@ -13,7 +13,9 @@ import {GitHub} from '@docker/actions-toolkit/lib/github';
 | 
			
		||||
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
 | 
			
		||||
import {Util} from '@docker/actions-toolkit/lib/util';
 | 
			
		||||
 | 
			
		||||
import {BuilderInfo} from '@docker/actions-toolkit/lib/types/buildx/builder';
 | 
			
		||||
import {ConfigFile} from '@docker/actions-toolkit/lib/types/docker/docker';
 | 
			
		||||
import {UploadArtifactResponse} from '@docker/actions-toolkit/lib/types/github';
 | 
			
		||||
 | 
			
		||||
import * as context from './context';
 | 
			
		||||
 | 
			
		||||
@@ -80,10 +82,10 @@ actionsToolkit.run(
 | 
			
		||||
      await toolkit.buildx.printVersion();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    let builder: BuilderInfo;
 | 
			
		||||
    await core.group(`Builder info`, async () => {
 | 
			
		||||
      const builder = await toolkit.builder.inspect(inputs.builder);
 | 
			
		||||
      builder = await toolkit.builder.inspect(inputs.builder);
 | 
			
		||||
      core.info(JSON.stringify(builder, null, 2));
 | 
			
		||||
      stateHelper.setBuilder(builder);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    const args: string[] = await context.getArgs(inputs, toolkit);
 | 
			
		||||
@@ -105,7 +107,6 @@ actionsToolkit.run(
 | 
			
		||||
    const imageID = toolkit.buildxBuild.resolveImageID();
 | 
			
		||||
    const metadata = toolkit.buildxBuild.resolveMetadata();
 | 
			
		||||
    const digest = toolkit.buildxBuild.resolveDigest();
 | 
			
		||||
 | 
			
		||||
    if (imageID) {
 | 
			
		||||
      await core.group(`ImageID`, async () => {
 | 
			
		||||
        core.info(imageID);
 | 
			
		||||
@@ -125,42 +126,65 @@ actionsToolkit.run(
 | 
			
		||||
        core.setOutput('metadata', metadatadt);
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let ref: string;
 | 
			
		||||
    await core.group(`Reference`, async () => {
 | 
			
		||||
      const ref = await buildRef(toolkit, startedTime, inputs.builder);
 | 
			
		||||
      ref = await buildRef(toolkit, startedTime, inputs.builder);
 | 
			
		||||
      if (ref) {
 | 
			
		||||
        core.info(ref);
 | 
			
		||||
        stateHelper.setBuildRef(ref);
 | 
			
		||||
      } else {
 | 
			
		||||
        core.warning('No build ref found');
 | 
			
		||||
        core.info('No build reference found');
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    await core.group(`Check build summary support`, async () => {
 | 
			
		||||
      if (!buildSummaryEnabled()) {
 | 
			
		||||
        core.info('Build summary disabled');
 | 
			
		||||
      } else if (GitHub.isGHES) {
 | 
			
		||||
        core.warning('Build summary is not yet supported on GHES');
 | 
			
		||||
      } else if (!(await toolkit.buildx.versionSatisfies('>=0.13.0'))) {
 | 
			
		||||
        core.warning('Build summary requires Buildx >= 0.13.0');
 | 
			
		||||
      } else if (builder && builder.driver === 'cloud') {
 | 
			
		||||
        core.warning('Build summary is not yet supported with Docker Build Cloud');
 | 
			
		||||
      } else if (!ref) {
 | 
			
		||||
        core.warning('Build summary requires a build reference');
 | 
			
		||||
      } else {
 | 
			
		||||
        core.info('Build summary supported!');
 | 
			
		||||
        stateHelper.setSummarySupported();
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    if (err) {
 | 
			
		||||
      throw err;
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  // post
 | 
			
		||||
  async () => {
 | 
			
		||||
    if (stateHelper.buildRef.length > 0) {
 | 
			
		||||
    if (stateHelper.isSummarySupported) {
 | 
			
		||||
      await core.group(`Generating build summary`, async () => {
 | 
			
		||||
        if (process.env.DOCKER_BUILD_NO_SUMMARY && Util.parseBool(process.env.DOCKER_BUILD_NO_SUMMARY)) {
 | 
			
		||||
          core.info('Summary disabled');
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        if (stateHelper.builder && stateHelper.builder.driver === 'cloud') {
 | 
			
		||||
          core.info('Summary is not yet supported with Docker Build Cloud');
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        try {
 | 
			
		||||
          const recordUploadEnabled = buildRecordUploadEnabled();
 | 
			
		||||
          let recordRetentionDays: number | undefined;
 | 
			
		||||
          if (recordUploadEnabled) {
 | 
			
		||||
            recordRetentionDays = buildRecordRetentionDays();
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          const buildxHistory = new BuildxHistory();
 | 
			
		||||
          const exportRes = await buildxHistory.export({
 | 
			
		||||
            refs: [stateHelper.buildRef]
 | 
			
		||||
          });
 | 
			
		||||
          core.info(`Build record exported to ${exportRes.dockerbuildFilename} (${Util.formatFileSize(exportRes.dockerbuildSize)})`);
 | 
			
		||||
          const uploadRes = await GitHub.uploadArtifact({
 | 
			
		||||
            filename: exportRes.dockerbuildFilename,
 | 
			
		||||
            mimeType: 'application/gzip',
 | 
			
		||||
            retentionDays: 90
 | 
			
		||||
            refs: stateHelper.buildRef ? [stateHelper.buildRef] : []
 | 
			
		||||
          });
 | 
			
		||||
          core.info(`Build record written to ${exportRes.dockerbuildFilename} (${Util.formatFileSize(exportRes.dockerbuildSize)})`);
 | 
			
		||||
 | 
			
		||||
          let uploadRes: UploadArtifactResponse | undefined;
 | 
			
		||||
          if (recordUploadEnabled) {
 | 
			
		||||
            uploadRes = await GitHub.uploadArtifact({
 | 
			
		||||
              filename: exportRes.dockerbuildFilename,
 | 
			
		||||
              mimeType: 'application/gzip',
 | 
			
		||||
              retentionDays: recordRetentionDays
 | 
			
		||||
            });
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          await GitHub.writeBuildSummary({
 | 
			
		||||
            exportRes: exportRes,
 | 
			
		||||
            uploadRes: uploadRes,
 | 
			
		||||
@@ -197,3 +221,37 @@ async function buildRef(toolkit: Toolkit, since: Date, builder?: string): Promis
 | 
			
		||||
  });
 | 
			
		||||
  return Object.keys(refs).length > 0 ? Object.keys(refs)[0] : '';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function buildSummaryEnabled(): boolean {
 | 
			
		||||
  if (process.env.DOCKER_BUILD_NO_SUMMARY) {
 | 
			
		||||
    core.warning('DOCKER_BUILD_NO_SUMMARY is deprecated. Set DOCKER_BUILD_SUMMARY to false instead.');
 | 
			
		||||
    return !Util.parseBool(process.env.DOCKER_BUILD_NO_SUMMARY);
 | 
			
		||||
  } else if (process.env.DOCKER_BUILD_SUMMARY) {
 | 
			
		||||
    return Util.parseBool(process.env.DOCKER_BUILD_SUMMARY);
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function buildRecordUploadEnabled(): boolean {
 | 
			
		||||
  if (process.env.DOCKER_BUILD_RECORD_UPLOAD) {
 | 
			
		||||
    return Util.parseBool(process.env.DOCKER_BUILD_RECORD_UPLOAD);
 | 
			
		||||
  }
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function buildRecordRetentionDays(): number | undefined {
 | 
			
		||||
  let val: string | undefined;
 | 
			
		||||
  if (process.env.DOCKER_BUILD_EXPORT_RETENTION_DAYS) {
 | 
			
		||||
    core.warning('DOCKER_BUILD_EXPORT_RETENTION_DAYS is deprecated. Use DOCKER_BUILD_RECORD_RETENTION_DAYS instead.');
 | 
			
		||||
    val = process.env.DOCKER_BUILD_EXPORT_RETENTION_DAYS;
 | 
			
		||||
  } else if (process.env.DOCKER_BUILD_RECORD_RETENTION_DAYS) {
 | 
			
		||||
    val = process.env.DOCKER_BUILD_RECORD_RETENTION_DAYS;
 | 
			
		||||
  }
 | 
			
		||||
  if (val) {
 | 
			
		||||
    const res = parseInt(val);
 | 
			
		||||
    if (isNaN(res)) {
 | 
			
		||||
      throw Error(`Invalid build record retention days: ${val}`);
 | 
			
		||||
    }
 | 
			
		||||
    return res;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,11 @@
 | 
			
		||||
import * as core from '@actions/core';
 | 
			
		||||
 | 
			
		||||
import {BuilderInfo} from '@docker/actions-toolkit/lib/types/buildx/builder';
 | 
			
		||||
 | 
			
		||||
import {Inputs, sanitizeInputs} from './context';
 | 
			
		||||
 | 
			
		||||
export const tmpDir = process.env['STATE_tmpDir'] || '';
 | 
			
		||||
export const inputs = process.env['STATE_inputs'] ? JSON.parse(process.env['STATE_inputs']) : undefined;
 | 
			
		||||
export const builder = process.env['STATE_builder'] ? <BuilderInfo>JSON.parse(process.env['STATE_builder']) : undefined;
 | 
			
		||||
export const buildRef = process.env['STATE_buildRef'] || '';
 | 
			
		||||
export const isSummarySupported = !!process.env['STATE_isSummarySupported'];
 | 
			
		||||
 | 
			
		||||
export function setTmpDir(tmpDir: string) {
 | 
			
		||||
  core.saveState('tmpDir', tmpDir);
 | 
			
		||||
@@ -17,10 +15,10 @@ export function setInputs(inputs: Inputs) {
 | 
			
		||||
  core.saveState('inputs', JSON.stringify(sanitizeInputs(inputs)));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function setBuilder(builder: BuilderInfo) {
 | 
			
		||||
  core.saveState('builder', JSON.stringify(builder));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function setBuildRef(buildRef: string) {
 | 
			
		||||
  core.saveState('buildRef', buildRef);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function setSummarySupported() {
 | 
			
		||||
  core.saveState('isSummarySupported', 'true');
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								yarn.lock
									
									
									
									
									
								
							@@ -12,9 +12,9 @@ __metadata:
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"@actions/artifact@npm:^2.1.7":
 | 
			
		||||
  version: 2.1.7
 | 
			
		||||
  resolution: "@actions/artifact@npm:2.1.7"
 | 
			
		||||
"@actions/artifact@npm:^2.1.8":
 | 
			
		||||
  version: 2.1.8
 | 
			
		||||
  resolution: "@actions/artifact@npm:2.1.8"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@actions/core": ^1.10.0
 | 
			
		||||
    "@actions/github": ^5.1.1
 | 
			
		||||
@@ -30,7 +30,7 @@ __metadata:
 | 
			
		||||
    jwt-decode: ^3.1.2
 | 
			
		||||
    twirp-ts: ^2.5.0
 | 
			
		||||
    unzip-stream: ^0.3.1
 | 
			
		||||
  checksum: 346c7caf43bdeb4a96c044ca3a6a005d82b977178b1a6be2c6954dfd59fef3344d2576bdd07c6cac9b54207cc88d7b1161cabd08c7cc15a1db86bf82463b36c7
 | 
			
		||||
  checksum: 51a47c21bcdac705abb61dbaef923f2760354c39bcad44a31b129e18bf31f646e5148f92ee7e1198275d1dba7bebfd1d1500ad7f62f6de1e65b57b2d092d5341
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
@@ -1055,11 +1055,11 @@ __metadata:
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"@docker/actions-toolkit@npm:0.26.2":
 | 
			
		||||
  version: 0.26.2
 | 
			
		||||
  resolution: "@docker/actions-toolkit@npm:0.26.2"
 | 
			
		||||
"@docker/actions-toolkit@npm:0.35.0":
 | 
			
		||||
  version: 0.35.0
 | 
			
		||||
  resolution: "@docker/actions-toolkit@npm:0.35.0"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@actions/artifact": ^2.1.7
 | 
			
		||||
    "@actions/artifact": ^2.1.8
 | 
			
		||||
    "@actions/cache": ^3.2.4
 | 
			
		||||
    "@actions/core": ^1.10.1
 | 
			
		||||
    "@actions/exec": ^1.1.1
 | 
			
		||||
@@ -1074,12 +1074,13 @@ __metadata:
 | 
			
		||||
    csv-parse: ^5.5.6
 | 
			
		||||
    gunzip-maybe: ^1.4.2
 | 
			
		||||
    handlebars: ^4.7.8
 | 
			
		||||
    he: ^1.2.0
 | 
			
		||||
    js-yaml: ^4.1.0
 | 
			
		||||
    jwt-decode: ^4.0.0
 | 
			
		||||
    semver: ^7.6.2
 | 
			
		||||
    semver: ^7.6.3
 | 
			
		||||
    tar-stream: ^3.1.7
 | 
			
		||||
    tmp: ^0.2.3
 | 
			
		||||
  checksum: f123f3f1c3369d7557948707e98a0005e43beb4c586f55befc0168426d29cab2ab4daa9dcf114b9e1de45883e2cc42365c69bdca8d61dbb5b2f3241ef4377049
 | 
			
		||||
  checksum: 27fa4a500e94beff376bc322cc1074c82b20f6ceb0104c43ed5efc613763c8b7ea37b231c32c4dfcb5f7ce8a14948eecc799aa363d60d11d848466d5718d63f0
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
@@ -3149,7 +3150,7 @@ __metadata:
 | 
			
		||||
  resolution: "docker-build-push@workspace:."
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@actions/core": ^1.10.1
 | 
			
		||||
    "@docker/actions-toolkit": 0.26.2
 | 
			
		||||
    "@docker/actions-toolkit": 0.35.0
 | 
			
		||||
    "@types/node": ^20.12.12
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": ^7.9.0
 | 
			
		||||
    "@typescript-eslint/parser": ^7.9.0
 | 
			
		||||
@@ -3962,6 +3963,15 @@ __metadata:
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"he@npm:^1.2.0":
 | 
			
		||||
  version: 1.2.0
 | 
			
		||||
  resolution: "he@npm:1.2.0"
 | 
			
		||||
  bin:
 | 
			
		||||
    he: bin/he
 | 
			
		||||
  checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"html-escaper@npm:^2.0.0":
 | 
			
		||||
  version: 2.0.2
 | 
			
		||||
  resolution: "html-escaper@npm:2.0.2"
 | 
			
		||||
@@ -5884,7 +5894,7 @@ __metadata:
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"semver@npm:^7.6.0, semver@npm:^7.6.2":
 | 
			
		||||
"semver@npm:^7.6.0":
 | 
			
		||||
  version: 7.6.2
 | 
			
		||||
  resolution: "semver@npm:7.6.2"
 | 
			
		||||
  bin:
 | 
			
		||||
@@ -5893,6 +5903,15 @@ __metadata:
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"semver@npm:^7.6.3":
 | 
			
		||||
  version: 7.6.3
 | 
			
		||||
  resolution: "semver@npm:7.6.3"
 | 
			
		||||
  bin:
 | 
			
		||||
    semver: bin/semver.js
 | 
			
		||||
  checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"shebang-command@npm:^2.0.0":
 | 
			
		||||
  version: 2.0.0
 | 
			
		||||
  resolution: "shebang-command@npm:2.0.0"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user