Compare commits
	
		
			72 Commits
		
	
	
		
			releases/v
			...
			v6.4.1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 1ca370b3a9 | ||
|   | 2c95ebed5c | ||
|   | d189d0ef33 | ||
|   | a254f8ca60 | ||
|   | 94dae62c78 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 267a69d6cc | ||
|   | f23fb2a7cb | ||
|   | ef76d100ee | ||
|   | 522345f555 | ||
|   | 1a162644f9 | ||
|   | 9eea548195 | ||
|   | 11c2faaa9e | ||
|   | de2365af33 | ||
|   | bca5082da7 | ||
|   | e7aab408d9 | ||
|   | 63eb7590c6 | ||
|   | 53ec48606f | ||
|   | fe9d9f1d0c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ad37ba1ad0 | ||
|   | aabbd3f4d7 | ||
|   | 9c7c277413 | ||
|   | 987902144c | ||
|   | 709dde20a7 | ||
|   | ec2d640ea6 | ||
|   | 3dc0757c66 | ||
|   | dcb0699155 | ||
|   | a3c06e8698 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e75138d857 | ||
|   | 9552610e81 | ||
|   | 99c83871c1 | ||
|   | af64c4e18f | ||
|   | 6fdff4fb09 | ||
|   | 9e59c61762 | ||
|   | 49351df2b7 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 723ff6ffad | ||
|   | 15560696de | ||
|   | 57e1d34ac3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 309982ebc9 | ||
|   | 9476c25b2a | ||
|   | 97be5a4928 | ||
|   | 9cac6c8ea0 | ||
|   | 31159d49c0 | ||
|   | 07e1c3e148 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f7febd621d | ||
|   | f6010ea701 | ||
|   | c0a6b9680f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 0dfe9c3d41 | ||
|   | 94f8f8c2ee | ||
|   | 22f4433c58 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6721c56015 | ||
|   | 4367da978b | ||
|   | 0883ebe52d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 76e5c2d6ea | ||
|   | 29d67824d8 | ||
|   | c382f710d3 | ||
|   | 5a5b70d974 | ||
|   | dc24cf9e25 | ||
|   | 667cb22c52 | ||
|   | d880b1964b | ||
|   | e51051ad0b | ||
|   | 86c2bd0031 | ||
|   | 268d2b1611 | ||
|   | 2b8dc7f529 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 840c12be17 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 26368743c0 | ||
|   | cfed4e995e | ||
|   | dca03ca8fd | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e030091ff4 | ||
|   | 84354d3b32 | ||
|   | de5408fe94 | ||
|   | cfc1555281 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f6a172d30e | 
							
								
								
									
										
											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 | 
							
								
								
									
										119
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										119
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1344,3 +1344,122 @@ jobs: | |||||||
|         name: Check docker |         name: Check docker | ||||||
|         run: | |         run: | | ||||||
|           docker image inspect localhost:5000/name/app:latest |           docker image inspect localhost:5000/name/app:latest | ||||||
|  |  | ||||||
|  |   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: | ||||||
|  |       - | ||||||
|  |         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_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 }} | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -20,7 +20,7 @@ jobs: | |||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
|       - |       - | ||||||
|         name: Test |         name: Test | ||||||
|         uses: docker/bake-action@v4 |         uses: docker/bake-action@v5 | ||||||
|         with: |         with: | ||||||
|           targets: test |           targets: test | ||||||
|       - |       - | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.github/workflows/validate.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/validate.yml
									
									
									
									
										vendored
									
									
								
							| @@ -40,6 +40,6 @@ jobs: | |||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
|       - |       - | ||||||
|         name: Validate |         name: Validate | ||||||
|         uses: docker/bake-action@v4 |         uses: docker/bake-action@v5 | ||||||
|         with: |         with: | ||||||
|           targets: ${{ matrix.target }} |           targets: ${{ matrix.target }} | ||||||
|   | |||||||
							
								
								
									
										64
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								README.md
									
									
									
									
									
								
							| @@ -19,24 +19,11 @@ ___ | |||||||
|   * [Git context](#git-context) |   * [Git context](#git-context) | ||||||
|   * [Path context](#path-context) |   * [Path context](#path-context) | ||||||
| * [Examples](#examples) | * [Examples](#examples) | ||||||
|   * [Multi-platform image](https://docs.docker.com/build/ci/github-actions/multi-platform/) | * [Summaries](#summaries) | ||||||
|   * [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/) |  | ||||||
| * [Customizing](#customizing) | * [Customizing](#customizing) | ||||||
|   * [inputs](#inputs) |   * [inputs](#inputs) | ||||||
|   * [outputs](#outputs) |   * [outputs](#outputs) | ||||||
|  |   * [environment variables](#environment-variables) | ||||||
| * [Troubleshooting](#troubleshooting) | * [Troubleshooting](#troubleshooting) | ||||||
| * [Contributing](#contributing) | * [Contributing](#contributing) | ||||||
|  |  | ||||||
| @@ -68,8 +55,6 @@ name: ci | |||||||
|  |  | ||||||
| on: | on: | ||||||
|   push: |   push: | ||||||
|     branches: |  | ||||||
|       - 'main' |  | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   docker: |   docker: | ||||||
| @@ -89,7 +74,7 @@ jobs: | |||||||
|           password: ${{ secrets.DOCKERHUB_TOKEN }} |           password: ${{ secrets.DOCKERHUB_TOKEN }} | ||||||
|       - |       - | ||||||
|         name: Build and push |         name: Build and push | ||||||
|         uses: docker/build-push-action@v5 |         uses: docker/build-push-action@v6 | ||||||
|         with: |         with: | ||||||
|           push: true |           push: true | ||||||
|           tags: user/app:latest |           tags: user/app:latest | ||||||
| @@ -107,14 +92,9 @@ expression `{{defaultContext}}`. Here we can use it to provide a subdirectory | |||||||
| to the default Git context: | to the default Git context: | ||||||
|  |  | ||||||
| ```yaml | ```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 |         name: Build and push | ||||||
|         uses: docker/build-push-action@v5 |         uses: docker/build-push-action@v6 | ||||||
|         with: |         with: | ||||||
|           context: "{{defaultContext}}:mysubdir" |           context: "{{defaultContext}}:mysubdir" | ||||||
|           push: true |           push: true | ||||||
| @@ -129,7 +109,7 @@ named `GIT_AUTH_TOKEN` to be able to authenticate against it with Buildx: | |||||||
| ```yaml | ```yaml | ||||||
|       - |       - | ||||||
|         name: Build and push |         name: Build and push | ||||||
|         uses: docker/build-push-action@v5 |         uses: docker/build-push-action@v6 | ||||||
|         with: |         with: | ||||||
|           push: true |           push: true | ||||||
|           tags: user/app:latest |           tags: user/app:latest | ||||||
| @@ -144,8 +124,6 @@ name: ci | |||||||
|  |  | ||||||
| on: | on: | ||||||
|   push: |   push: | ||||||
|     branches: |  | ||||||
|       - 'main' |  | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   docker: |   docker: | ||||||
| @@ -168,7 +146,7 @@ jobs: | |||||||
|           password: ${{ secrets.DOCKERHUB_TOKEN }} |           password: ${{ secrets.DOCKERHUB_TOKEN }} | ||||||
|       - |       - | ||||||
|         name: Build and push |         name: Build and push | ||||||
|         uses: docker/build-push-action@v5 |         uses: docker/build-push-action@v6 | ||||||
|         with: |         with: | ||||||
|           context: . |           context: . | ||||||
|           push: true |           push: true | ||||||
| @@ -193,11 +171,31 @@ jobs: | |||||||
| * [Annotations](https://docs.docker.com/build/ci/github-actions/annotations/) | * [Annotations](https://docs.docker.com/build/ci/github-actions/annotations/) | ||||||
| * [Reproducible builds](https://docs.docker.com/build/ci/github-actions/reproducible-builds/) | * [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 | ## Customizing | ||||||
|  |  | ||||||
| ### inputs | ### 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 | > `List` type is a newline-delimited string | ||||||
| > ```yaml | > ```yaml | ||||||
| @@ -256,6 +254,14 @@ The following outputs are available: | |||||||
| | `digest`   | String  | Image digest          | | | `digest`   | String  | Image digest          | | ||||||
| | `metadata` | JSON    | Build result metadata | | | `metadata` | JSON    | Build result metadata | | ||||||
|  |  | ||||||
|  | ### environment variables | ||||||
|  |  | ||||||
|  | | 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 | ## Troubleshooting | ||||||
|  |  | ||||||
| See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) | See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) | ||||||
|   | |||||||
| @@ -59,7 +59,7 @@ jobs: | |||||||
|         uses: crazy-max/ghaction-setup-containerd@v2 |         uses: crazy-max/ghaction-setup-containerd@v2 | ||||||
|       - |       - | ||||||
|         name: Build Docker image |         name: Build Docker image | ||||||
|         uses: docker/build-push-action@v5 |         uses: docker/build-push-action@v6 | ||||||
|         with: |         with: | ||||||
|           context: . |           context: . | ||||||
|           platforms: linux/amd64,linux/arm64 |           platforms: linux/amd64,linux/arm64 | ||||||
| @@ -112,7 +112,7 @@ to generate sanitized tags: | |||||||
|     tags: latest |     tags: latest | ||||||
|  |  | ||||||
| - name: Build and push | - name: Build and push | ||||||
|   uses: docker/build-push-action@v5 |   uses: docker/build-push-action@v6 | ||||||
|   with: |   with: | ||||||
|     context: . |     context: . | ||||||
|     push: true |     push: true | ||||||
| @@ -130,7 +130,7 @@ Or a dedicated step to sanitize the slug: | |||||||
|     script: return 'ghcr.io/${{ github.repository }}'.toLowerCase() |     script: return 'ghcr.io/${{ github.repository }}'.toLowerCase() | ||||||
|  |  | ||||||
| - name: Build and push | - name: Build and push | ||||||
|   uses: docker/build-push-action@v5 |   uses: docker/build-push-action@v6 | ||||||
|   with: |   with: | ||||||
|     context: . |     context: . | ||||||
|     push: true |     push: true | ||||||
|   | |||||||
| @@ -494,7 +494,7 @@ nproc=3`], | |||||||
|       [ |       [ | ||||||
|         'build', |         'build', | ||||||
|         '--iidfile', imageIDFilePath, |         '--iidfile', imageIDFilePath, | ||||||
|         '--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`, |         '--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`, | ||||||
|         '--metadata-file', metadataJson, |         '--metadata-file', metadataJson, | ||||||
|         '.' |         '.' | ||||||
|       ] |       ] | ||||||
| @@ -513,7 +513,7 @@ nproc=3`], | |||||||
|       [ |       [ | ||||||
|         'build', |         'build', | ||||||
|         '--iidfile', imageIDFilePath, |         '--iidfile', imageIDFilePath, | ||||||
|         '--attest', `type=provenance,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`, |         '--attest', `type=provenance,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`, | ||||||
|         '--metadata-file', metadataJson, |         '--metadata-file', metadataJson, | ||||||
|         '.' |         '.' | ||||||
|       ] |       ] | ||||||
| @@ -532,7 +532,7 @@ nproc=3`], | |||||||
|       [ |       [ | ||||||
|         'build', |         'build', | ||||||
|         '--iidfile', imageIDFilePath, |         '--iidfile', imageIDFilePath, | ||||||
|         '--attest', `type=provenance,mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`, |         '--attest', `type=provenance,mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`, | ||||||
|         '--metadata-file', metadataJson, |         '--metadata-file', metadataJson, | ||||||
|         '.' |         '.' | ||||||
|       ] |       ] | ||||||
| @@ -690,7 +690,7 @@ ANOTHER_SECRET=ANOTHER_SECRET_ENV`] | |||||||
|       [ |       [ | ||||||
|         'build', |         'build', | ||||||
|         '--output', 'type=local,dest=./release-out', |         '--output', 'type=local,dest=./release-out', | ||||||
|         '--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`, |         '--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`, | ||||||
|         '--metadata-file', metadataJson, |         '--metadata-file', metadataJson, | ||||||
|         '.' |         '.' | ||||||
|       ] |       ] | ||||||
| @@ -714,7 +714,7 @@ ANOTHER_SECRET=ANOTHER_SECRET_ENV`] | |||||||
|         '--annotation', 'manifest:example3=yyy', |         '--annotation', 'manifest:example3=yyy', | ||||||
|         '--annotation', 'manifest-descriptor[linux/amd64]:example4=zzz', |         '--annotation', 'manifest-descriptor[linux/amd64]:example4=zzz', | ||||||
|         '--output', 'type=local,dest=./release-out', |         '--output', 'type=local,dest=./release-out', | ||||||
|         '--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`, |         '--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`, | ||||||
|         '--metadata-file', metadataJson, |         '--metadata-file', metadataJson, | ||||||
|         '.' |         '.' | ||||||
|       ] |       ] | ||||||
| @@ -734,7 +734,7 @@ ANOTHER_SECRET=ANOTHER_SECRET_ENV`] | |||||||
|         'build', |         'build', | ||||||
|         '--iidfile', imageIDFilePath, |         '--iidfile', imageIDFilePath, | ||||||
|         "--output", `type=image,"name=localhost:5000/name/app:latest,localhost:5000/name/app:foo",push-by-digest=true,name-canonical=true,push=true`, |         "--output", `type=image,"name=localhost:5000/name/app:latest,localhost:5000/name/app:foo",push-by-digest=true,name-canonical=true,push=true`, | ||||||
|         '--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`, |         '--attest', `type=provenance,mode=min,inline-only=true,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`, | ||||||
|         '--metadata-file', metadataJson, |         '--metadata-file', metadataJson, | ||||||
|         '.' |         '.' | ||||||
|       ] |       ] | ||||||
| @@ -754,7 +754,7 @@ ANOTHER_SECRET=ANOTHER_SECRET_ENV`] | |||||||
|       [ |       [ | ||||||
|         'build', |         'build', | ||||||
|         '--iidfile', imageIDFilePath, |         '--iidfile', imageIDFilePath, | ||||||
|         '--attest', `type=provenance,mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`, |         '--attest', `type=provenance,mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`, | ||||||
|         '--attest', `type=sbom,disabled=false`, |         '--attest', `type=sbom,disabled=false`, | ||||||
|         '--metadata-file', metadataJson, |         '--metadata-file', metadataJson, | ||||||
|         '.' |         '.' | ||||||
| @@ -775,7 +775,7 @@ ANOTHER_SECRET=ANOTHER_SECRET_ENV`] | |||||||
|       [ |       [ | ||||||
|         'build', |         'build', | ||||||
|         '--iidfile', imageIDFilePath, |         '--iidfile', imageIDFilePath, | ||||||
|         '--attest', `type=provenance,mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`, |         '--attest', `type=provenance,mode=max,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`, | ||||||
|         '--metadata-file', metadataJson, |         '--metadata-file', metadataJson, | ||||||
|         '.' |         '.' | ||||||
|       ] |       ] | ||||||
| @@ -794,7 +794,7 @@ ANOTHER_SECRET=ANOTHER_SECRET_ENV`] | |||||||
|       [ |       [ | ||||||
|         'build', |         'build', | ||||||
|         '--iidfile', imageIDFilePath, |         '--iidfile', imageIDFilePath, | ||||||
|         '--attest', `type=provenance,mode=min,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789`, |         '--attest', `type=provenance,mode=min,builder-id=https://github.com/docker/build-push-action/actions/runs/123456789/attempts/1`, | ||||||
|         '--metadata-file', metadataJson, |         '--metadata-file', metadataJson, | ||||||
|         '.' |         '.' | ||||||
|       ] |       ] | ||||||
|   | |||||||
							
								
								
									
										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
											
										
									
								
							
							
								
								
									
										26
									
								
								dist/licenses.txt
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								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. | 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 | iconv-lite | ||||||
| MIT | MIT | ||||||
| Copyright (c) 2011 Alexander Shtuchkin | Copyright (c) 2011 Alexander Shtuchkin | ||||||
| @@ -2807,7 +2831,7 @@ minimatch | |||||||
| ISC | ISC | ||||||
| The ISC License | The ISC License | ||||||
|  |  | ||||||
| Copyright (c) Isaac Z. Schlueter and Contributors | Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors | ||||||
|  |  | ||||||
| Permission to use, copy, modify, and/or distribute this software for any | Permission to use, copy, modify, and/or distribute this software for any | ||||||
| purpose with or without fee is hereby granted, provided that the above | purpose with or without fee is hereby granted, provided that the above | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ | |||||||
|   "packageManager": "yarn@3.6.3", |   "packageManager": "yarn@3.6.3", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/core": "^1.10.1", |     "@actions/core": "^1.10.1", | ||||||
|     "@docker/actions-toolkit": "0.24.0", |     "@docker/actions-toolkit": "0.33.0", | ||||||
|     "handlebars": "^4.7.7" |     "handlebars": "^4.7.7" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|   | |||||||
| @@ -79,6 +79,25 @@ export async function getInputs(): Promise<Inputs> { | |||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | export function sanitizeInputs(inputs: Inputs) { | ||||||
|  |   const res = {}; | ||||||
|  |   for (const key of Object.keys(inputs)) { | ||||||
|  |     if (key === 'github-token') { | ||||||
|  |       continue; | ||||||
|  |     } | ||||||
|  |     const value: string | string[] | boolean = inputs[key]; | ||||||
|  |     if (typeof value === 'boolean' && value === false) { | ||||||
|  |       continue; | ||||||
|  |     } else if (Array.isArray(value) && value.length === 0) { | ||||||
|  |       continue; | ||||||
|  |     } else if (!value) { | ||||||
|  |       continue; | ||||||
|  |     } | ||||||
|  |     res[key] = value; | ||||||
|  |   } | ||||||
|  |   return res; | ||||||
|  | } | ||||||
|  |  | ||||||
| export async function getArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<string>> { | export async function getArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<string>> { | ||||||
|   const context = handlebars.compile(inputs.context)({ |   const context = handlebars.compile(inputs.context)({ | ||||||
|     defaultContext: Context.gitContext() |     defaultContext: Context.gitContext() | ||||||
|   | |||||||
							
								
								
									
										133
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										133
									
								
								src/main.ts
									
									
									
									
									
								
							| @@ -4,21 +4,28 @@ import * as stateHelper from './state-helper'; | |||||||
| import * as core from '@actions/core'; | import * as core from '@actions/core'; | ||||||
| import * as actionsToolkit from '@docker/actions-toolkit'; | import * as actionsToolkit from '@docker/actions-toolkit'; | ||||||
|  |  | ||||||
|  | import {Buildx} from '@docker/actions-toolkit/lib/buildx/buildx'; | ||||||
|  | import {History as BuildxHistory} from '@docker/actions-toolkit/lib/buildx/history'; | ||||||
| import {Context} from '@docker/actions-toolkit/lib/context'; | import {Context} from '@docker/actions-toolkit/lib/context'; | ||||||
| import {Docker} from '@docker/actions-toolkit/lib/docker/docker'; | import {Docker} from '@docker/actions-toolkit/lib/docker/docker'; | ||||||
| import {Exec} from '@docker/actions-toolkit/lib/exec'; | import {Exec} from '@docker/actions-toolkit/lib/exec'; | ||||||
| import {GitHub} from '@docker/actions-toolkit/lib/github'; | import {GitHub} from '@docker/actions-toolkit/lib/github'; | ||||||
| import {Toolkit} from '@docker/actions-toolkit/lib/toolkit'; | 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 {ConfigFile} from '@docker/actions-toolkit/lib/types/docker/docker'; | ||||||
|  | import {UploadArtifactResponse} from '@docker/actions-toolkit/lib/types/github'; | ||||||
|  |  | ||||||
| import * as context from './context'; | import * as context from './context'; | ||||||
|  |  | ||||||
| actionsToolkit.run( | actionsToolkit.run( | ||||||
|   // main |   // main | ||||||
|   async () => { |   async () => { | ||||||
|  |     const startedTime = new Date(); | ||||||
|     const inputs: context.Inputs = await context.getInputs(); |     const inputs: context.Inputs = await context.getInputs(); | ||||||
|     core.debug(`inputs: ${JSON.stringify(inputs)}`); |     core.debug(`inputs: ${JSON.stringify(inputs)}`); | ||||||
|  |     stateHelper.setInputs(inputs); | ||||||
|  |  | ||||||
|     const toolkit = new Toolkit(); |     const toolkit = new Toolkit(); | ||||||
|  |  | ||||||
| @@ -75,8 +82,9 @@ actionsToolkit.run( | |||||||
|       await toolkit.buildx.printVersion(); |       await toolkit.buildx.printVersion(); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|  |     let builder: BuilderInfo; | ||||||
|     await core.group(`Builder info`, async () => { |     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)); |       core.info(JSON.stringify(builder, null, 2)); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
| @@ -87,18 +95,18 @@ actionsToolkit.run( | |||||||
|     core.debug(`buildCmd.command: ${buildCmd.command}`); |     core.debug(`buildCmd.command: ${buildCmd.command}`); | ||||||
|     core.debug(`buildCmd.args: ${JSON.stringify(buildCmd.args)}`); |     core.debug(`buildCmd.args: ${JSON.stringify(buildCmd.args)}`); | ||||||
|  |  | ||||||
|  |     let err: Error | undefined; | ||||||
|     await Exec.getExecOutput(buildCmd.command, buildCmd.args, { |     await Exec.getExecOutput(buildCmd.command, buildCmd.args, { | ||||||
|       ignoreReturnCode: true |       ignoreReturnCode: true | ||||||
|     }).then(res => { |     }).then(res => { | ||||||
|       if (res.stderr.length > 0 && res.exitCode != 0) { |       if (res.stderr.length > 0 && res.exitCode != 0) { | ||||||
|         throw new Error(`buildx failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`); |         err = Error(`buildx failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`); | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     const imageID = toolkit.buildxBuild.resolveImageID(); |     const imageID = toolkit.buildxBuild.resolveImageID(); | ||||||
|     const metadata = toolkit.buildxBuild.resolveMetadata(); |     const metadata = toolkit.buildxBuild.resolveMetadata(); | ||||||
|     const digest = toolkit.buildxBuild.resolveDigest(); |     const digest = toolkit.buildxBuild.resolveDigest(); | ||||||
|  |  | ||||||
|     if (imageID) { |     if (imageID) { | ||||||
|       await core.group(`ImageID`, async () => { |       await core.group(`ImageID`, async () => { | ||||||
|         core.info(imageID); |         core.info(imageID); | ||||||
| @@ -118,9 +126,75 @@ actionsToolkit.run( | |||||||
|         core.setOutput('metadata', metadatadt); |         core.setOutput('metadata', metadatadt); | ||||||
|       }); |       }); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     let ref: string; | ||||||
|  |     await core.group(`Reference`, async () => { | ||||||
|  |       ref = await buildRef(toolkit, startedTime, inputs.builder); | ||||||
|  |       if (ref) { | ||||||
|  |         core.info(ref); | ||||||
|  |         stateHelper.setBuildRef(ref); | ||||||
|  |       } else { | ||||||
|  |         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 |   // post | ||||||
|   async () => { |   async () => { | ||||||
|  |     if (stateHelper.isSummarySupported) { | ||||||
|  |       await core.group(`Generating build summary`, async () => { | ||||||
|  |         try { | ||||||
|  |           const recordUploadEnabled = buildRecordUploadEnabled(); | ||||||
|  |           let recordRetentionDays: number | undefined; | ||||||
|  |           if (recordUploadEnabled) { | ||||||
|  |             recordRetentionDays = buildRecordRetentionDays(); | ||||||
|  |           } | ||||||
|  |  | ||||||
|  |           const buildxHistory = new BuildxHistory(); | ||||||
|  |           const exportRes = await buildxHistory.export({ | ||||||
|  |             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, | ||||||
|  |             inputs: stateHelper.inputs | ||||||
|  |           }); | ||||||
|  |         } catch (e) { | ||||||
|  |           core.warning(e.message); | ||||||
|  |         } | ||||||
|  |       }); | ||||||
|  |     } | ||||||
|     if (stateHelper.tmpDir.length > 0) { |     if (stateHelper.tmpDir.length > 0) { | ||||||
|       await core.group(`Removing temp folder ${stateHelper.tmpDir}`, async () => { |       await core.group(`Removing temp folder ${stateHelper.tmpDir}`, async () => { | ||||||
|         fs.rmSync(stateHelper.tmpDir, {recursive: true}); |         fs.rmSync(stateHelper.tmpDir, {recursive: true}); | ||||||
| @@ -128,3 +202,56 @@ actionsToolkit.run( | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
| ); | ); | ||||||
|  |  | ||||||
|  | async function buildRef(toolkit: Toolkit, since: Date, builder?: string): Promise<string> { | ||||||
|  |   // get ref from metadata file | ||||||
|  |   const ref = toolkit.buildxBuild.resolveRef(); | ||||||
|  |   if (ref) { | ||||||
|  |     return ref; | ||||||
|  |   } | ||||||
|  |   // otherwise, look for the very first build ref since the build has started | ||||||
|  |   if (!builder) { | ||||||
|  |     const currentBuilder = await toolkit.builder.inspect(); | ||||||
|  |     builder = currentBuilder.name; | ||||||
|  |   } | ||||||
|  |   const refs = Buildx.refs({ | ||||||
|  |     dir: Buildx.refsDir, | ||||||
|  |     builderName: builder, | ||||||
|  |     since: since | ||||||
|  |   }); | ||||||
|  |   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,7 +1,24 @@ | |||||||
| import * as core from '@actions/core'; | import * as core from '@actions/core'; | ||||||
|  |  | ||||||
|  | import {Inputs, sanitizeInputs} from './context'; | ||||||
|  |  | ||||||
| export const tmpDir = process.env['STATE_tmpDir'] || ''; | export const tmpDir = process.env['STATE_tmpDir'] || ''; | ||||||
|  | export const inputs = process.env['STATE_inputs'] ? JSON.parse(process.env['STATE_inputs']) : undefined; | ||||||
|  | export const buildRef = process.env['STATE_buildRef'] || ''; | ||||||
|  | export const isSummarySupported = !!process.env['STATE_isSummarySupported']; | ||||||
|  |  | ||||||
| export function setTmpDir(tmpDir: string) { | export function setTmpDir(tmpDir: string) { | ||||||
|   core.saveState('tmpDir', tmpDir); |   core.saveState('tmpDir', tmpDir); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | export function setInputs(inputs: Inputs) { | ||||||
|  |   core.saveState('inputs', JSON.stringify(sanitizeInputs(inputs))); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function setBuildRef(buildRef: string) { | ||||||
|  |   core.saveState('buildRef', buildRef); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export function setSummarySupported() { | ||||||
|  |   core.saveState('isSummarySupported', 'true'); | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										179
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										179
									
								
								yarn.lock
									
									
									
									
									
								
							| @@ -12,9 +12,9 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| "@actions/artifact@npm:^2.1.7": | "@actions/artifact@npm:^2.1.8": | ||||||
|   version: 2.1.7 |   version: 2.1.8 | ||||||
|   resolution: "@actions/artifact@npm:2.1.7" |   resolution: "@actions/artifact@npm:2.1.8" | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@actions/core": ^1.10.0 |     "@actions/core": ^1.10.0 | ||||||
|     "@actions/github": ^5.1.1 |     "@actions/github": ^5.1.1 | ||||||
| @@ -30,7 +30,7 @@ __metadata: | |||||||
|     jwt-decode: ^3.1.2 |     jwt-decode: ^3.1.2 | ||||||
|     twirp-ts: ^2.5.0 |     twirp-ts: ^2.5.0 | ||||||
|     unzip-stream: ^0.3.1 |     unzip-stream: ^0.3.1 | ||||||
|   checksum: 346c7caf43bdeb4a96c044ca3a6a005d82b977178b1a6be2c6954dfd59fef3344d2576bdd07c6cac9b54207cc88d7b1161cabd08c7cc15a1db86bf82463b36c7 |   checksum: 51a47c21bcdac705abb61dbaef923f2760354c39bcad44a31b129e18bf31f646e5148f92ee7e1198275d1dba7bebfd1d1500ad7f62f6de1e65b57b2d092d5341 | ||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| @@ -1055,11 +1055,11 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| "@docker/actions-toolkit@npm:0.24.0": | "@docker/actions-toolkit@npm:0.33.0": | ||||||
|   version: 0.24.0 |   version: 0.33.0 | ||||||
|   resolution: "@docker/actions-toolkit@npm:0.24.0" |   resolution: "@docker/actions-toolkit@npm:0.33.0" | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@actions/artifact": ^2.1.7 |     "@actions/artifact": ^2.1.8 | ||||||
|     "@actions/cache": ^3.2.4 |     "@actions/cache": ^3.2.4 | ||||||
|     "@actions/core": ^1.10.1 |     "@actions/core": ^1.10.1 | ||||||
|     "@actions/exec": ^1.1.1 |     "@actions/exec": ^1.1.1 | ||||||
| @@ -1072,12 +1072,15 @@ __metadata: | |||||||
|     "@octokit/plugin-rest-endpoint-methods": ^10.4.0 |     "@octokit/plugin-rest-endpoint-methods": ^10.4.0 | ||||||
|     async-retry: ^1.3.3 |     async-retry: ^1.3.3 | ||||||
|     csv-parse: ^5.5.6 |     csv-parse: ^5.5.6 | ||||||
|  |     gunzip-maybe: ^1.4.2 | ||||||
|     handlebars: ^4.7.8 |     handlebars: ^4.7.8 | ||||||
|  |     he: ^1.2.0 | ||||||
|     js-yaml: ^4.1.0 |     js-yaml: ^4.1.0 | ||||||
|     jwt-decode: ^4.0.0 |     jwt-decode: ^4.0.0 | ||||||
|     semver: ^7.6.2 |     semver: ^7.6.2 | ||||||
|  |     tar-stream: ^3.1.7 | ||||||
|     tmp: ^0.2.3 |     tmp: ^0.2.3 | ||||||
|   checksum: f9610ca263ba98bdf52736727b375930e2d20402e810c3d1d69b74fbe0a1c689ce4f04a1d02e058e9958a059c3bf01358d4428363bd02c702c05fda9e3fd82af |   checksum: 510273d28bcf0c8a6acd4ffffa0b52cf98f46018f7f3f0772026b8fdb9422cf1dc851558140a0e95e8af3c584eb087ecb2dc48bdab0bc4f8dd9994959b052a22 | ||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| @@ -2627,11 +2630,20 @@ __metadata: | |||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| "braces@npm:^3.0.1": | "braces@npm:^3.0.1": | ||||||
|   version: 3.0.2 |   version: 3.0.3 | ||||||
|   resolution: "braces@npm:3.0.2" |   resolution: "braces@npm:3.0.3" | ||||||
|   dependencies: |   dependencies: | ||||||
|     fill-range: ^7.0.1 |     fill-range: ^7.1.1 | ||||||
|   checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 |   checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
|  | "browserify-zlib@npm:^0.1.4": | ||||||
|  |   version: 0.1.4 | ||||||
|  |   resolution: "browserify-zlib@npm:0.1.4" | ||||||
|  |   dependencies: | ||||||
|  |     pako: ~0.2.0 | ||||||
|  |   checksum: abee4cb4349e8a21391fd874564f41b113fe691372913980e6fa06a777e4ea2aad4e942af14ab99bce190d5ac8f5328201432f4ef0eae48c6d02208bc212976f | ||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| @@ -3138,7 +3150,7 @@ __metadata: | |||||||
|   resolution: "docker-build-push@workspace:." |   resolution: "docker-build-push@workspace:." | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@actions/core": ^1.10.1 |     "@actions/core": ^1.10.1 | ||||||
|     "@docker/actions-toolkit": 0.24.0 |     "@docker/actions-toolkit": 0.33.0 | ||||||
|     "@types/node": ^20.12.12 |     "@types/node": ^20.12.12 | ||||||
|     "@typescript-eslint/eslint-plugin": ^7.9.0 |     "@typescript-eslint/eslint-plugin": ^7.9.0 | ||||||
|     "@typescript-eslint/parser": ^7.9.0 |     "@typescript-eslint/parser": ^7.9.0 | ||||||
| @@ -3177,6 +3189,18 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "duplexify@npm:^3.5.0, duplexify@npm:^3.6.0": | ||||||
|  |   version: 3.7.1 | ||||||
|  |   resolution: "duplexify@npm:3.7.1" | ||||||
|  |   dependencies: | ||||||
|  |     end-of-stream: ^1.0.0 | ||||||
|  |     inherits: ^2.0.1 | ||||||
|  |     readable-stream: ^2.0.0 | ||||||
|  |     stream-shift: ^1.0.0 | ||||||
|  |   checksum: 3c2ed2223d956a5da713dae12ba8295acb61d9acd966ccbba938090d04f4574ca4dca75cca089b5077c2d7e66101f32e6ea9b36a78ca213eff574e7a8b8accf2 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "eastasianwidth@npm:^0.2.0": | "eastasianwidth@npm:^0.2.0": | ||||||
|   version: 0.2.0 |   version: 0.2.0 | ||||||
|   resolution: "eastasianwidth@npm:0.2.0" |   resolution: "eastasianwidth@npm:0.2.0" | ||||||
| @@ -3228,6 +3252,15 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0": | ||||||
|  |   version: 1.4.4 | ||||||
|  |   resolution: "end-of-stream@npm:1.4.4" | ||||||
|  |   dependencies: | ||||||
|  |     once: ^1.4.0 | ||||||
|  |   checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "env-paths@npm:^2.2.0": | "env-paths@npm:^2.2.0": | ||||||
|   version: 2.2.1 |   version: 2.2.1 | ||||||
|   resolution: "env-paths@npm:2.2.1" |   resolution: "env-paths@npm:2.2.1" | ||||||
| @@ -3593,12 +3626,12 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| "fill-range@npm:^7.0.1": | "fill-range@npm:^7.1.1": | ||||||
|   version: 7.0.1 |   version: 7.1.1 | ||||||
|   resolution: "fill-range@npm:7.0.1" |   resolution: "fill-range@npm:7.1.1" | ||||||
|   dependencies: |   dependencies: | ||||||
|     to-regex-range: ^5.0.1 |     to-regex-range: ^5.0.1 | ||||||
|   checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 |   checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 | ||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| @@ -3873,6 +3906,22 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "gunzip-maybe@npm:^1.4.2": | ||||||
|  |   version: 1.4.2 | ||||||
|  |   resolution: "gunzip-maybe@npm:1.4.2" | ||||||
|  |   dependencies: | ||||||
|  |     browserify-zlib: ^0.1.4 | ||||||
|  |     is-deflate: ^1.0.0 | ||||||
|  |     is-gzip: ^1.0.0 | ||||||
|  |     peek-stream: ^1.1.0 | ||||||
|  |     pumpify: ^1.3.3 | ||||||
|  |     through2: ^2.0.3 | ||||||
|  |   bin: | ||||||
|  |     gunzip-maybe: bin.js | ||||||
|  |   checksum: bc4d4977c24a2860238df271de75d53dd72a359d19f1248d1c613807dc221d3b8ae09624e3085c8106663e3e1b59db62a85b261d1138c2cc24efad9df577d4e1 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "handlebars@npm:^4.7.7, handlebars@npm:^4.7.8": | "handlebars@npm:^4.7.7, handlebars@npm:^4.7.8": | ||||||
|   version: 4.7.8 |   version: 4.7.8 | ||||||
|   resolution: "handlebars@npm:4.7.8" |   resolution: "handlebars@npm:4.7.8" | ||||||
| @@ -3914,6 +3963,15 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   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": | "html-escaper@npm:^2.0.0": | ||||||
|   version: 2.0.2 |   version: 2.0.2 | ||||||
|   resolution: "html-escaper@npm:2.0.2" |   resolution: "html-escaper@npm:2.0.2" | ||||||
| @@ -4031,7 +4089,7 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| "inherits@npm:2, inherits@npm:~2.0.3": | "inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.3": | ||||||
|   version: 2.0.4 |   version: 2.0.4 | ||||||
|   resolution: "inherits@npm:2.0.4" |   resolution: "inherits@npm:2.0.4" | ||||||
|   checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 |   checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 | ||||||
| @@ -4064,6 +4122,13 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "is-deflate@npm:^1.0.0": | ||||||
|  |   version: 1.0.0 | ||||||
|  |   resolution: "is-deflate@npm:1.0.0" | ||||||
|  |   checksum: c2f9f2d3db79ac50c5586697d1e69a55282a2b0cc5e437b3c470dd47f24e40b6216dcd7e024511e21381607bf57afa019343e3bd0e08a119032818b596004262 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "is-extglob@npm:^2.1.1": | "is-extglob@npm:^2.1.1": | ||||||
|   version: 2.1.1 |   version: 2.1.1 | ||||||
|   resolution: "is-extglob@npm:2.1.1" |   resolution: "is-extglob@npm:2.1.1" | ||||||
| @@ -4094,6 +4159,13 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "is-gzip@npm:^1.0.0": | ||||||
|  |   version: 1.0.0 | ||||||
|  |   resolution: "is-gzip@npm:1.0.0" | ||||||
|  |   checksum: 0d28931c1f445fa29c900cf9f48e06e9d1d477a3bf7bd7332e7ce68f1333ccd8cb381de2f0f62a9a262d9c0912608a9a71b4a40e788e201b3dbd67072bb20d86 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "is-lambda@npm:^1.0.1": | "is-lambda@npm:^1.0.1": | ||||||
|   version: 1.0.1 |   version: 1.0.1 | ||||||
|   resolution: "is-lambda@npm:1.0.1" |   resolution: "is-lambda@npm:1.0.1" | ||||||
| @@ -5269,7 +5341,7 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| "once@npm:^1.3.0, once@npm:^1.4.0": | "once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": | ||||||
|   version: 1.4.0 |   version: 1.4.0 | ||||||
|   resolution: "once@npm:1.4.0" |   resolution: "once@npm:1.4.0" | ||||||
|   dependencies: |   dependencies: | ||||||
| @@ -5353,6 +5425,13 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "pako@npm:~0.2.0": | ||||||
|  |   version: 0.2.9 | ||||||
|  |   resolution: "pako@npm:0.2.9" | ||||||
|  |   checksum: 055f9487cd57fbb78df84315873bbdd089ba286f3499daed47d2effdc6253e981f5db6898c23486de76d4a781559f890d643bd3a49f70f1b4a18019c98aa5125 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "parent-module@npm:^1.0.0": | "parent-module@npm:^1.0.0": | ||||||
|   version: 1.0.1 |   version: 1.0.1 | ||||||
|   resolution: "parent-module@npm:1.0.1" |   resolution: "parent-module@npm:1.0.1" | ||||||
| @@ -5436,6 +5515,17 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "peek-stream@npm:^1.1.0": | ||||||
|  |   version: 1.1.3 | ||||||
|  |   resolution: "peek-stream@npm:1.1.3" | ||||||
|  |   dependencies: | ||||||
|  |     buffer-from: ^1.0.0 | ||||||
|  |     duplexify: ^3.5.0 | ||||||
|  |     through2: ^2.0.3 | ||||||
|  |   checksum: a0e09d6d1a8a01158a3334f20d6b1cdd91747eba24eb06a1d742eefb620385593121a76d4378cc81f77cdce6a66df0575a41041b1189c510254aec91878afc99 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "picocolors@npm:^1.0.0": | "picocolors@npm:^1.0.0": | ||||||
|   version: 1.0.0 |   version: 1.0.0 | ||||||
|   resolution: "picocolors@npm:1.0.0" |   resolution: "picocolors@npm:1.0.0" | ||||||
| @@ -5559,6 +5649,27 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "pump@npm:^2.0.0": | ||||||
|  |   version: 2.0.1 | ||||||
|  |   resolution: "pump@npm:2.0.1" | ||||||
|  |   dependencies: | ||||||
|  |     end-of-stream: ^1.1.0 | ||||||
|  |     once: ^1.3.1 | ||||||
|  |   checksum: e9f26a17be00810bff37ad0171edb35f58b242487b0444f92fb7d78bc7d61442fa9b9c5bd93a43fd8fd8ddd3cc75f1221f5e04c790f42907e5baab7cf5e2b931 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
|  | "pumpify@npm:^1.3.3": | ||||||
|  |   version: 1.5.1 | ||||||
|  |   resolution: "pumpify@npm:1.5.1" | ||||||
|  |   dependencies: | ||||||
|  |     duplexify: ^3.6.0 | ||||||
|  |     inherits: ^2.0.3 | ||||||
|  |     pump: ^2.0.0 | ||||||
|  |   checksum: 26ca412ec8d665bd0d5e185c1b8f627728eff603440d75d22a58e421e3c66eaf86ec6fc6a6efc54808ecef65979279fa8e99b109a23ec1fa8d79f37e6978c9bd | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "punycode@npm:^2.1.0": | "punycode@npm:^2.1.0": | ||||||
|   version: 2.1.1 |   version: 2.1.1 | ||||||
|   resolution: "punycode@npm:2.1.1" |   resolution: "punycode@npm:2.1.1" | ||||||
| @@ -5594,7 +5705,7 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| "readable-stream@npm:^2.0.5": | "readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.5, readable-stream@npm:~2.3.6": | ||||||
|   version: 2.3.8 |   version: 2.3.8 | ||||||
|   resolution: "readable-stream@npm:2.3.8" |   resolution: "readable-stream@npm:2.3.8" | ||||||
|   dependencies: |   dependencies: | ||||||
| @@ -5920,6 +6031,13 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "stream-shift@npm:^1.0.0": | ||||||
|  |   version: 1.0.3 | ||||||
|  |   resolution: "stream-shift@npm:1.0.3" | ||||||
|  |   checksum: a24c0a3f66a8f9024bd1d579a533a53be283b4475d4e6b4b3211b964031447bdf6532dd1f3c2b0ad66752554391b7c62bd7ca4559193381f766534e723d50242 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "streamx@npm:^2.15.0": | "streamx@npm:^2.15.0": | ||||||
|   version: 2.16.1 |   version: 2.16.1 | ||||||
|   resolution: "streamx@npm:2.16.1" |   resolution: "streamx@npm:2.16.1" | ||||||
| @@ -6087,7 +6205,7 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
| "tar-stream@npm:^3.0.0": | "tar-stream@npm:^3.0.0, tar-stream@npm:^3.1.7": | ||||||
|   version: 3.1.7 |   version: 3.1.7 | ||||||
|   resolution: "tar-stream@npm:3.1.7" |   resolution: "tar-stream@npm:3.1.7" | ||||||
|   dependencies: |   dependencies: | ||||||
| @@ -6130,6 +6248,16 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "through2@npm:^2.0.3": | ||||||
|  |   version: 2.0.5 | ||||||
|  |   resolution: "through2@npm:2.0.5" | ||||||
|  |   dependencies: | ||||||
|  |     readable-stream: ~2.3.6 | ||||||
|  |     xtend: ~4.0.1 | ||||||
|  |   checksum: beb0f338aa2931e5660ec7bf3ad949e6d2e068c31f4737b9525e5201b824ac40cac6a337224856b56bd1ddd866334bbfb92a9f57cd6f66bc3f18d3d86fc0fe50 | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "tmp@npm:^0.2.3": | "tmp@npm:^0.2.3": | ||||||
|   version: 0.2.3 |   version: 0.2.3 | ||||||
|   resolution: "tmp@npm:0.2.3" |   resolution: "tmp@npm:0.2.3" | ||||||
| @@ -6623,6 +6751,13 @@ __metadata: | |||||||
|   languageName: node |   languageName: node | ||||||
|   linkType: hard |   linkType: hard | ||||||
|  |  | ||||||
|  | "xtend@npm:~4.0.1": | ||||||
|  |   version: 4.0.2 | ||||||
|  |   resolution: "xtend@npm:4.0.2" | ||||||
|  |   checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a | ||||||
|  |   languageName: node | ||||||
|  |   linkType: hard | ||||||
|  |  | ||||||
| "y18n@npm:^5.0.5": | "y18n@npm:^5.0.5": | ||||||
|   version: 5.0.8 |   version: 5.0.8 | ||||||
|   resolution: "y18n@npm:5.0.8" |   resolution: "y18n@npm:5.0.8" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user