Compare commits
	
		
			42 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					67a2d409c0 | ||
| 
						 | 
					0b1b1c9c43 | ||
| 
						 | 
					b6a7c2c4ee | ||
| 
						 | 
					31ca4e5d51 | ||
| 
						 | 
					e613db9d5a | ||
| 
						 | 
					b32b51a8ed | ||
| 
						 | 
					594bf46f0f | ||
| 
						 | 
					fd37bd55af | ||
| 
						 | 
					e6478a2405 | ||
| 
						 | 
					78785bddff | ||
| 
						 | 
					128779fed7 | ||
| 
						 | 
					7e094594be | ||
| 
						 | 
					32ee877a58 | ||
| 
						 | 
					d1a4129c41 | ||
| 
						 | 
					49c623eaf8 | ||
| 
						 | 
					bcc9f4afe7 | ||
| 
						 | 
					da5b6c75b9 | ||
| 
						 | 
					11be14d908 | ||
| 
						 | 
					f5a8591a7f | ||
| 
						 | 
					8796455d32 | ||
| 
						 | 
					750f367828 | ||
| 
						 | 
					48aba3b46d | ||
| 
						 | 
					678328cf8e | ||
| 
						 | 
					cdf0a37e6f | ||
| 
						 | 
					d719b79de1 | ||
| 
						 | 
					c333dfd43d | ||
| 
						 | 
					6b56a4c3f8 | ||
| 
						 | 
					92fb0d73b6 | ||
| 
						 | 
					40532c5d6f | ||
| 
						 | 
					70dd953427 | ||
| 
						 | 
					41b4e8020e | ||
| 
						 | 
					22cd91d73b | ||
| 
						 | 
					6bdcc4fb8c | ||
| 
						 | 
					b5e932e401 | ||
| 
						 | 
					325a8bf0f1 | ||
| 
						 | 
					0259cb088b | ||
| 
						 | 
					1b8e4efb78 | ||
| 
						 | 
					75ffdcce88 | ||
| 
						 | 
					73b7dbf5d4 | ||
| 
						 | 
					f79ca49284 | ||
| 
						 | 
					5e99dacf67 | ||
| 
						 | 
					b249570060 | 
							
								
								
									
										3
									
								
								.github/workflows/.e2e-run.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/.e2e-run.yml
									
									
									
									
										vendored
									
									
								
							@@ -65,10 +65,11 @@ jobs:
 | 
			
		||||
        if: inputs.type == 'local'
 | 
			
		||||
        run: |
 | 
			
		||||
          if [ ! -e /etc/docker/daemon.json ]; then
 | 
			
		||||
            echo '{}' | tee /etc/docker/daemon.json >/dev/null
 | 
			
		||||
            echo '{}' | sudo tee /etc/docker/daemon.json >/dev/null
 | 
			
		||||
          fi
 | 
			
		||||
          DOCKERD_CONFIG=$(jq '.+{"insecure-registries":["http://${{ env.REGISTRY_FQDN }}"]}' /etc/docker/daemon.json)
 | 
			
		||||
          sudo tee /etc/docker/daemon.json <<<"$DOCKERD_CONFIG" >/dev/null
 | 
			
		||||
          cat /etc/docker/daemon.json
 | 
			
		||||
          sudo service docker restart
 | 
			
		||||
      -
 | 
			
		||||
        name: Install ${{ inputs.name }}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							@@ -288,7 +288,6 @@ jobs:
 | 
			
		||||
      -
 | 
			
		||||
        name: Check
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "${{ toJson(steps.docker_build) }}"
 | 
			
		||||
          if [ "${{ steps.docker_build.outcome }}" != "failure" ] || [ "${{ steps.docker_build.conclusion }}" != "success" ]; then
 | 
			
		||||
            echo "::error::Should have failed"
 | 
			
		||||
            exit 1
 | 
			
		||||
@@ -324,7 +323,6 @@ jobs:
 | 
			
		||||
      -
 | 
			
		||||
        name: Check
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "${{ toJson(steps.docker_build) }}"
 | 
			
		||||
          if [ "${{ steps.docker_build.outcome }}" != "failure" ] || [ "${{ steps.docker_build.conclusion }}" != "success" ]; then
 | 
			
		||||
            echo "::error::Should have failed"
 | 
			
		||||
            exit 1
 | 
			
		||||
@@ -1511,3 +1509,33 @@ jobs:
 | 
			
		||||
          file: ./test/lint.Dockerfile
 | 
			
		||||
        env:
 | 
			
		||||
          DOCKER_BUILD_CHECKS_ANNOTATIONS: false
 | 
			
		||||
 | 
			
		||||
  call-check:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
      -
 | 
			
		||||
        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
 | 
			
		||||
        id: docker_build
 | 
			
		||||
        continue-on-error: true
 | 
			
		||||
        uses: ./
 | 
			
		||||
        with:
 | 
			
		||||
          context: ./test
 | 
			
		||||
          file: ./test/lint.Dockerfile
 | 
			
		||||
          call: check
 | 
			
		||||
      -
 | 
			
		||||
        name: Check
 | 
			
		||||
        run: |
 | 
			
		||||
          if [ "${{ steps.docker_build.outcome }}" != "failure" ] || [ "${{ steps.docker_build.conclusion }}" != "success" ]; then
 | 
			
		||||
            echo "::error::Should have failed"
 | 
			
		||||
            exit 1
 | 
			
		||||
          fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								.github/workflows/publish.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								.github/workflows/publish.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
name: publish
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  release:
 | 
			
		||||
    types:
 | 
			
		||||
      - published
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  publish:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    permissions:
 | 
			
		||||
      contents: read
 | 
			
		||||
      id-token: write
 | 
			
		||||
      packages: write
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
      -
 | 
			
		||||
        name: Publish
 | 
			
		||||
        uses: actions/publish-immutable-action@v0.0.4
 | 
			
		||||
							
								
								
									
										9
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							@@ -15,17 +15,14 @@ jobs:
 | 
			
		||||
  test:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
      -
 | 
			
		||||
        name: Test
 | 
			
		||||
        uses: docker/bake-action@v5
 | 
			
		||||
        uses: docker/bake-action@v6
 | 
			
		||||
        with:
 | 
			
		||||
          targets: test
 | 
			
		||||
      -
 | 
			
		||||
        name: Upload coverage
 | 
			
		||||
        uses: codecov/codecov-action@v4
 | 
			
		||||
        uses: codecov/codecov-action@v5
 | 
			
		||||
        with:
 | 
			
		||||
          file: ./coverage/clover.xml
 | 
			
		||||
          files: ./coverage/clover.xml
 | 
			
		||||
          token: ${{ secrets.CODECOV_TOKEN }}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								.github/workflows/validate.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/workflows/validate.yml
									
									
									
									
										vendored
									
									
								
							@@ -15,16 +15,17 @@ jobs:
 | 
			
		||||
  prepare:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    outputs:
 | 
			
		||||
      targets: ${{ steps.targets.outputs.matrix }}
 | 
			
		||||
      targets: ${{ steps.generate.outputs.targets }}
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
      -
 | 
			
		||||
        name: Targets matrix
 | 
			
		||||
        id: targets
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "matrix=$(docker buildx bake validate --print | jq -cr '.group.validate.targets')" >> $GITHUB_OUTPUT
 | 
			
		||||
        name: List targets
 | 
			
		||||
        id: generate
 | 
			
		||||
        uses: docker/bake-action/subaction/list-targets@v6
 | 
			
		||||
        with:
 | 
			
		||||
          target: validate
 | 
			
		||||
 | 
			
		||||
  validate:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
@@ -35,11 +36,8 @@ jobs:
 | 
			
		||||
      matrix:
 | 
			
		||||
        target: ${{ fromJson(needs.prepare.outputs.targets) }}
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
      -
 | 
			
		||||
        name: Validate
 | 
			
		||||
        uses: docker/bake-action@v5
 | 
			
		||||
        uses: docker/bake-action@v6
 | 
			
		||||
        with:
 | 
			
		||||
          targets: ${{ matrix.target }}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										25
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								README.md
									
									
									
									
									
								
							@@ -60,18 +60,18 @@ jobs:
 | 
			
		||||
  docker:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      -
 | 
			
		||||
        name: Login to Docker Hub
 | 
			
		||||
        uses: docker/login-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          username: ${{ vars.DOCKERHUB_USERNAME }}
 | 
			
		||||
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
      -
 | 
			
		||||
        name: Set up QEMU
 | 
			
		||||
        uses: docker/setup-qemu-action@v3
 | 
			
		||||
      -
 | 
			
		||||
        name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v3
 | 
			
		||||
      -
 | 
			
		||||
        name: Login to Docker Hub
 | 
			
		||||
        uses: docker/login-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
			
		||||
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
      -
 | 
			
		||||
        name: Build and push
 | 
			
		||||
        uses: docker/build-push-action@v6
 | 
			
		||||
@@ -132,18 +132,18 @@ jobs:
 | 
			
		||||
      -
 | 
			
		||||
        name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
      -
 | 
			
		||||
        name: Login to Docker Hub
 | 
			
		||||
        uses: docker/login-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          username: ${{ vars.DOCKERHUB_USERNAME }}
 | 
			
		||||
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
      -
 | 
			
		||||
        name: Set up QEMU
 | 
			
		||||
        uses: docker/setup-qemu-action@v3
 | 
			
		||||
      -
 | 
			
		||||
        name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v3
 | 
			
		||||
      -
 | 
			
		||||
        name: Login to Docker Hub
 | 
			
		||||
        uses: docker/login-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
			
		||||
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
      -
 | 
			
		||||
        name: Build and push
 | 
			
		||||
        uses: docker/build-push-action@v6
 | 
			
		||||
@@ -220,6 +220,7 @@ The following inputs can be used as `step.with` keys:
 | 
			
		||||
| `build-contexts`   | List        | List of additional [build contexts](https://docs.docker.com/engine/reference/commandline/buildx_build/#build-context) (e.g., `name=path`)                                         |
 | 
			
		||||
| `cache-from`       | List        | List of [external cache sources](https://docs.docker.com/engine/reference/commandline/buildx_build/#cache-from) (e.g., `type=local,src=path/to/dir`)                              |
 | 
			
		||||
| `cache-to`         | List        | List of [cache export destinations](https://docs.docker.com/engine/reference/commandline/buildx_build/#cache-to) (e.g., `type=local,dest=path/to/dir`)                            |
 | 
			
		||||
| `call`             | String      | Set [method for evaluating build](https://docs.docker.com/reference/cli/docker/buildx/build/#call) (e.g., `check`)                                                                |
 | 
			
		||||
| `cgroup-parent`    | String      | Optional [parent cgroup](https://docs.docker.com/engine/reference/commandline/build/#use-a-custom-parent-cgroup---cgroup-parent) for the container used in the build              |
 | 
			
		||||
| `context`          | String      | Build's context is the set of files located in the specified [`PATH` or `URL`](https://docs.docker.com/engine/reference/commandline/build/) (default [Git context](#git-context)) |
 | 
			
		||||
| `file`             | String      | Path to the Dockerfile. (default `{context}/Dockerfile`)                                                                                                                          |
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,6 @@
 | 
			
		||||
  * [BuildKit container logs](#buildkit-container-logs)
 | 
			
		||||
  * [With containerd](#with-containerd)
 | 
			
		||||
* [`repository name must be lowercase`](#repository-name-must-be-lowercase)
 | 
			
		||||
* [Image not loaded](#image-not-loaded)
 | 
			
		||||
 | 
			
		||||
## Cannot push to a registry
 | 
			
		||||
 | 
			
		||||
@@ -136,29 +135,3 @@ Or a dedicated step to sanitize the slug:
 | 
			
		||||
    push: true
 | 
			
		||||
    tags: ${{ steps.repo_slug.outputs.result }}:latest
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Image not loaded
 | 
			
		||||
 | 
			
		||||
Sometimes when your workflows are heavy consumers of disk storage, it can happen that build-push-action declares that the built image is loaded, but then not found in the following workflow steps.
 | 
			
		||||
 | 
			
		||||
- You can use the following solution as workaround, to free space on disk before building docker image using the following workflow step
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
      # Free disk space
 | 
			
		||||
      - name: Free Disk space
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          sudo rm -rf /usr/local/lib/android  # will release about 10 GB if you don't need Android
 | 
			
		||||
          sudo rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- Another workaround can be to call `docker/setup-buildx-action` with docker driver
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
name: Set up Docker Buildx
 | 
			
		||||
uses: docker/setup-buildx-action@v3
 | 
			
		||||
with:
 | 
			
		||||
  driver: docker
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
More details in the [related issue](https://github.com/docker/build-push-action/issues/321)
 | 
			
		||||
 
 | 
			
		||||
@@ -34,6 +34,9 @@ inputs:
 | 
			
		||||
  cache-to:
 | 
			
		||||
    description: "List of cache export destinations for buildx (e.g., user/app:cache, type=local,dest=path/to/dir)"
 | 
			
		||||
    required: false
 | 
			
		||||
  call:
 | 
			
		||||
    description: "Set method for evaluating build (e.g., check)"
 | 
			
		||||
    required: false
 | 
			
		||||
  cgroup-parent:
 | 
			
		||||
    description: "Optional parent cgroup for the container used in the build"
 | 
			
		||||
    required: false
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										30
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								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
											
										
									
								
							@@ -1,3 +1,9 @@
 | 
			
		||||
target "_common" {
 | 
			
		||||
  args = {
 | 
			
		||||
    BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
group "default" {
 | 
			
		||||
  targets = ["build"]
 | 
			
		||||
}
 | 
			
		||||
@@ -11,42 +17,49 @@ group "validate" {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
target "build" {
 | 
			
		||||
  inherits = ["_common"]
 | 
			
		||||
  dockerfile = "dev.Dockerfile"
 | 
			
		||||
  target = "build-update"
 | 
			
		||||
  output = ["."]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
target "build-validate" {
 | 
			
		||||
  inherits = ["_common"]
 | 
			
		||||
  dockerfile = "dev.Dockerfile"
 | 
			
		||||
  target = "build-validate"
 | 
			
		||||
  output = ["type=cacheonly"]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
target "format" {
 | 
			
		||||
  inherits = ["_common"]
 | 
			
		||||
  dockerfile = "dev.Dockerfile"
 | 
			
		||||
  target = "format-update"
 | 
			
		||||
  output = ["."]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
target "lint" {
 | 
			
		||||
  inherits = ["_common"]
 | 
			
		||||
  dockerfile = "dev.Dockerfile"
 | 
			
		||||
  target = "lint"
 | 
			
		||||
  output = ["type=cacheonly"]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
target "vendor" {
 | 
			
		||||
  inherits = ["_common"]
 | 
			
		||||
  dockerfile = "dev.Dockerfile"
 | 
			
		||||
  target = "vendor-update"
 | 
			
		||||
  output = ["."]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
target "vendor-validate" {
 | 
			
		||||
  inherits = ["_common"]
 | 
			
		||||
  dockerfile = "dev.Dockerfile"
 | 
			
		||||
  target = "vendor-validate"
 | 
			
		||||
  output = ["type=cacheonly"]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
target "test" {
 | 
			
		||||
  inherits = ["_common"]
 | 
			
		||||
  dockerfile = "dev.Dockerfile"
 | 
			
		||||
  target = "test-coverage"
 | 
			
		||||
  output = ["./coverage"]
 | 
			
		||||
 
 | 
			
		||||
@@ -26,8 +26,8 @@
 | 
			
		||||
  "license": "Apache-2.0",
 | 
			
		||||
  "packageManager": "yarn@3.6.3",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@actions/core": "^1.10.1",
 | 
			
		||||
    "@docker/actions-toolkit": "0.39.0",
 | 
			
		||||
    "@actions/core": "^1.11.1",
 | 
			
		||||
    "@docker/actions-toolkit": "0.51.0",
 | 
			
		||||
    "handlebars": "^4.7.7"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ export interface Inputs {
 | 
			
		||||
  builder: string;
 | 
			
		||||
  'cache-from': string[];
 | 
			
		||||
  'cache-to': string[];
 | 
			
		||||
  call: string;
 | 
			
		||||
  'cgroup-parent': string;
 | 
			
		||||
  context: string;
 | 
			
		||||
  file: string;
 | 
			
		||||
@@ -53,6 +54,7 @@ export async function getInputs(): Promise<Inputs> {
 | 
			
		||||
    builder: core.getInput('builder'),
 | 
			
		||||
    'cache-from': Util.getInputList('cache-from', {ignoreComma: true}),
 | 
			
		||||
    'cache-to': Util.getInputList('cache-to', {ignoreComma: true}),
 | 
			
		||||
    call: core.getInput('call'),
 | 
			
		||||
    'cgroup-parent': core.getInput('cgroup-parent'),
 | 
			
		||||
    context: core.getInput('context') || Context.gitContext(),
 | 
			
		||||
    file: core.getInput('file'),
 | 
			
		||||
@@ -115,9 +117,9 @@ async function getBuildArgs(inputs: Inputs, context: string, toolkit: Toolkit):
 | 
			
		||||
  await Util.asyncForEach(inputs['add-hosts'], async addHost => {
 | 
			
		||||
    args.push('--add-host', addHost);
 | 
			
		||||
  });
 | 
			
		||||
  if (inputs.allow.length > 0) {
 | 
			
		||||
    args.push('--allow', inputs.allow.join(','));
 | 
			
		||||
  }
 | 
			
		||||
  await Util.asyncForEach(inputs.allow, async allow => {
 | 
			
		||||
    args.push('--allow', allow);
 | 
			
		||||
  });
 | 
			
		||||
  if (await toolkit.buildx.versionSatisfies('>=0.12.0')) {
 | 
			
		||||
    await Util.asyncForEach(inputs.annotations, async annotation => {
 | 
			
		||||
      args.push('--annotation', annotation);
 | 
			
		||||
@@ -130,7 +132,12 @@ async function getBuildArgs(inputs: Inputs, context: string, toolkit: Toolkit):
 | 
			
		||||
  });
 | 
			
		||||
  if (await toolkit.buildx.versionSatisfies('>=0.8.0')) {
 | 
			
		||||
    await Util.asyncForEach(inputs['build-contexts'], async buildContext => {
 | 
			
		||||
      args.push('--build-context', buildContext);
 | 
			
		||||
      args.push(
 | 
			
		||||
        '--build-context',
 | 
			
		||||
        handlebars.compile(buildContext)({
 | 
			
		||||
          defaultContext: Context.gitContext()
 | 
			
		||||
        })
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
  } else if (inputs['build-contexts'].length > 0) {
 | 
			
		||||
    core.warning("Build contexts are only supported by buildx >= 0.8.0; the input 'build-contexts' is ignored.");
 | 
			
		||||
@@ -141,6 +148,12 @@ async function getBuildArgs(inputs: Inputs, context: string, toolkit: Toolkit):
 | 
			
		||||
  await Util.asyncForEach(inputs['cache-to'], async cacheTo => {
 | 
			
		||||
    args.push('--cache-to', cacheTo);
 | 
			
		||||
  });
 | 
			
		||||
  if (inputs.call) {
 | 
			
		||||
    if (!(await toolkit.buildx.versionSatisfies('>=0.15.0'))) {
 | 
			
		||||
      throw new Error(`Buildx >= 0.15.0 is required to use the call flag.`);
 | 
			
		||||
    }
 | 
			
		||||
    args.push('--call', inputs.call);
 | 
			
		||||
  }
 | 
			
		||||
  if (inputs['cgroup-parent']) {
 | 
			
		||||
    args.push('--cgroup-parent', inputs['cgroup-parent']);
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								src/main.ts
									
									
									
									
									
								
							@@ -104,9 +104,15 @@ actionsToolkit.run(
 | 
			
		||||
        [key: string]: string;
 | 
			
		||||
      }
 | 
			
		||||
    }).then(res => {
 | 
			
		||||
      if (res.stderr.length > 0 && res.exitCode != 0) {
 | 
			
		||||
      if (res.exitCode != 0) {
 | 
			
		||||
        if (inputs.call && inputs.call === 'check' && res.stdout.length > 0) {
 | 
			
		||||
          // checks warnings are printed to stdout: https://github.com/docker/buildx/pull/2647
 | 
			
		||||
          // take the first line with the message summaryzing the warnings
 | 
			
		||||
          err = Error(res.stdout.split('\n')[0]?.trim());
 | 
			
		||||
        } else if (res.stderr.length > 0) {
 | 
			
		||||
          err = Error(`buildx failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    const imageID = toolkit.buildxBuild.resolveImageID();
 | 
			
		||||
@@ -161,6 +167,8 @@ actionsToolkit.run(
 | 
			
		||||
    await core.group(`Check build summary support`, async () => {
 | 
			
		||||
      if (!buildSummaryEnabled()) {
 | 
			
		||||
        core.info('Build summary disabled');
 | 
			
		||||
      } else if (inputs.call && inputs.call !== 'build') {
 | 
			
		||||
        core.info(`Build summary skipped for ${inputs.call} subrequest`);
 | 
			
		||||
      } else if (GitHub.isGHES) {
 | 
			
		||||
        core.info('Build summary is not yet supported on GHES');
 | 
			
		||||
      } else if (!(await toolkit.buildx.versionSatisfies('>=0.13.0'))) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
# syntax=docker/dockerfile:1
 | 
			
		||||
FROM --platform=$BUILDPLATFORM golang:alpine AS build
 | 
			
		||||
 | 
			
		||||
FROM --platform=$BUILDPLATFORM alpine AS build
 | 
			
		||||
ARG TARGETPLATFORM
 | 
			
		||||
ARG BUILDPLATFORM
 | 
			
		||||
RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM" > /log
 | 
			
		||||
@@ -12,7 +13,7 @@ RUN apk --update --no-cache add \
 | 
			
		||||
  && rm -rf /tmp/* /var/cache/apk/*
 | 
			
		||||
 | 
			
		||||
USER buildx
 | 
			
		||||
RUN sudo chown buildx. /log
 | 
			
		||||
RUN sudo chown buildx: /log
 | 
			
		||||
USER root
 | 
			
		||||
 | 
			
		||||
FROM alpine
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										75
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										75
									
								
								yarn.lock
									
									
									
									
									
								
							@@ -12,9 +12,9 @@ __metadata:
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"@actions/artifact@npm:^2.1.9":
 | 
			
		||||
  version: 2.1.9
 | 
			
		||||
  resolution: "@actions/artifact@npm:2.1.9"
 | 
			
		||||
"@actions/artifact@npm:^2.2.1":
 | 
			
		||||
  version: 2.2.1
 | 
			
		||||
  resolution: "@actions/artifact@npm:2.2.1"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@actions/core": ^1.10.0
 | 
			
		||||
    "@actions/github": ^5.1.1
 | 
			
		||||
@@ -26,19 +26,18 @@ __metadata:
 | 
			
		||||
    "@octokit/request-error": ^5.0.0
 | 
			
		||||
    "@protobuf-ts/plugin": ^2.2.3-alpha.1
 | 
			
		||||
    archiver: ^7.0.1
 | 
			
		||||
    crypto: ^1.0.1
 | 
			
		||||
    jwt-decode: ^3.1.2
 | 
			
		||||
    twirp-ts: ^2.5.0
 | 
			
		||||
    unzip-stream: ^0.3.1
 | 
			
		||||
  checksum: b01404aa6b4d47186e04a64c0002100ff68a8473eafb811a3d49275a7e1135d1981ccaf527b81c4856f6da764beabe7489fd296bb287906fd7c1964dfaeef3df
 | 
			
		||||
  checksum: 6ce4e62d941f17743c845637cdd832ca34c77efe0c31cf7f6ab3ad0531e54e62d4379198e8af5e84463b5f5ae0bc0ea11d41cc77c5fae7e511c7ef01742892ea
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"@actions/cache@npm:^3.2.4":
 | 
			
		||||
  version: 3.2.4
 | 
			
		||||
  resolution: "@actions/cache@npm:3.2.4"
 | 
			
		||||
"@actions/cache@npm:^3.3.0":
 | 
			
		||||
  version: 3.3.0
 | 
			
		||||
  resolution: "@actions/cache@npm:3.3.0"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@actions/core": ^1.10.0
 | 
			
		||||
    "@actions/core": ^1.11.1
 | 
			
		||||
    "@actions/exec": ^1.0.1
 | 
			
		||||
    "@actions/glob": ^0.1.0
 | 
			
		||||
    "@actions/http-client": ^2.1.1
 | 
			
		||||
@@ -47,12 +46,11 @@ __metadata:
 | 
			
		||||
    "@azure/ms-rest-js": ^2.6.0
 | 
			
		||||
    "@azure/storage-blob": ^12.13.0
 | 
			
		||||
    semver: ^6.3.1
 | 
			
		||||
    uuid: ^3.3.3
 | 
			
		||||
  checksum: 5bf5f7541bea4906b553440a9ffee5699e11dfb729365c6cb0bbd37e147a1a0993369fdad16bfa3e2b01ec7fa57dac66276278bfd4a389009246a75ea953e61d
 | 
			
		||||
  checksum: f0761b1491b7706a80b44d68ed52eb48c04653fc939525a7c7b606e9d9251c40c7e4ac20846ab92ac32db6869e1a6f0f574bd6b7fec1ab9378c8e199c5acc9c9
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"@actions/core@npm:^1.10.0, @actions/core@npm:^1.10.1, @actions/core@npm:^1.2.6":
 | 
			
		||||
"@actions/core@npm:^1.10.0, @actions/core@npm:^1.2.6":
 | 
			
		||||
  version: 1.10.1
 | 
			
		||||
  resolution: "@actions/core@npm:1.10.1"
 | 
			
		||||
  dependencies:
 | 
			
		||||
@@ -62,6 +60,16 @@ __metadata:
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"@actions/core@npm:^1.11.1":
 | 
			
		||||
  version: 1.11.1
 | 
			
		||||
  resolution: "@actions/core@npm:1.11.1"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@actions/exec": ^1.1.1
 | 
			
		||||
    "@actions/http-client": ^2.0.1
 | 
			
		||||
  checksum: 9ac7a3e0b478bfefd862dcb4ddaa1d8c3f9076bb1931d3d280918d1749e7783480c6a009c1b009c8bf5093e2d77d9f4e023d70416145bf246f0071736d4ef839
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"@actions/exec@npm:^1.0.0, @actions/exec@npm:^1.0.1, @actions/exec@npm:^1.1.1":
 | 
			
		||||
  version: 1.1.1
 | 
			
		||||
  resolution: "@actions/exec@npm:1.1.1"
 | 
			
		||||
@@ -1065,13 +1073,13 @@ __metadata:
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"@docker/actions-toolkit@npm:0.39.0":
 | 
			
		||||
  version: 0.39.0
 | 
			
		||||
  resolution: "@docker/actions-toolkit@npm:0.39.0"
 | 
			
		||||
"@docker/actions-toolkit@npm:0.51.0":
 | 
			
		||||
  version: 0.51.0
 | 
			
		||||
  resolution: "@docker/actions-toolkit@npm:0.51.0"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@actions/artifact": ^2.1.9
 | 
			
		||||
    "@actions/cache": ^3.2.4
 | 
			
		||||
    "@actions/core": ^1.10.1
 | 
			
		||||
    "@actions/artifact": ^2.2.1
 | 
			
		||||
    "@actions/cache": ^3.3.0
 | 
			
		||||
    "@actions/core": ^1.11.1
 | 
			
		||||
    "@actions/exec": ^1.1.1
 | 
			
		||||
    "@actions/github": ^6.0.0
 | 
			
		||||
    "@actions/http-client": ^2.2.3
 | 
			
		||||
@@ -1081,7 +1089,7 @@ __metadata:
 | 
			
		||||
    "@octokit/core": ^5.1.0
 | 
			
		||||
    "@octokit/plugin-rest-endpoint-methods": ^10.4.0
 | 
			
		||||
    async-retry: ^1.3.3
 | 
			
		||||
    csv-parse: ^5.5.6
 | 
			
		||||
    csv-parse: ^5.6.0
 | 
			
		||||
    gunzip-maybe: ^1.4.2
 | 
			
		||||
    handlebars: ^4.7.8
 | 
			
		||||
    he: ^1.2.0
 | 
			
		||||
@@ -1090,7 +1098,7 @@ __metadata:
 | 
			
		||||
    semver: ^7.6.3
 | 
			
		||||
    tar-stream: ^3.1.7
 | 
			
		||||
    tmp: ^0.2.3
 | 
			
		||||
  checksum: 9dafe3c3e02f6f78c8da4cfb8bc726ae5eef9b6a2fedfca5d75ee6d6c559745c12aa16587dd595360f76be91803235dc66e0852e595ef7a582506fa0d4402983
 | 
			
		||||
  checksum: 03d25e8896fed69db608aad58995a41f57325c1e26c197040990c671dfbdeddd2483028d24c2d4505c010a87992780ee09d9e1f1141dda5662857050d644a99b
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
@@ -3025,27 +3033,20 @@ __metadata:
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
 | 
			
		||||
  version: 7.0.3
 | 
			
		||||
  resolution: "cross-spawn@npm:7.0.3"
 | 
			
		||||
  version: 7.0.6
 | 
			
		||||
  resolution: "cross-spawn@npm:7.0.6"
 | 
			
		||||
  dependencies:
 | 
			
		||||
    path-key: ^3.1.0
 | 
			
		||||
    shebang-command: ^2.0.0
 | 
			
		||||
    which: ^2.0.1
 | 
			
		||||
  checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52
 | 
			
		||||
  checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"crypto@npm:^1.0.1":
 | 
			
		||||
  version: 1.0.1
 | 
			
		||||
  resolution: "crypto@npm:1.0.1"
 | 
			
		||||
  checksum: 087fe3165bd94c333a49e6ed66a0193911f63eac38a24f379b3001a5fe260a59c413646e53a0f67875ba13902b2686d81dc703cb2c147a4ec727dcdc04e5645e
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"csv-parse@npm:^5.5.6":
 | 
			
		||||
  version: 5.5.6
 | 
			
		||||
  resolution: "csv-parse@npm:5.5.6"
 | 
			
		||||
  checksum: ee06f97f674487dc1d001b360de8ea510a41b9d971abf43bcf9c3be22c83a3634df0d3ebfbe52fd49d145077066be7ff9f25de3fc6b71aefb973099b04147a25
 | 
			
		||||
"csv-parse@npm:^5.6.0":
 | 
			
		||||
  version: 5.6.0
 | 
			
		||||
  resolution: "csv-parse@npm:5.6.0"
 | 
			
		||||
  checksum: 173e176bdaf212bab37d0f6d39a06d039d24a1c0ee40b9f1023ebf8b36095934807deeb493c0fb58592b39b0682ccd0be5c9e8d2b137c08807e7031595ea7a51
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
@@ -3159,8 +3160,8 @@ __metadata:
 | 
			
		||||
  version: 0.0.0-use.local
 | 
			
		||||
  resolution: "docker-build-push@workspace:."
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@actions/core": ^1.10.1
 | 
			
		||||
    "@docker/actions-toolkit": 0.39.0
 | 
			
		||||
    "@actions/core": ^1.11.1
 | 
			
		||||
    "@docker/actions-toolkit": 0.51.0
 | 
			
		||||
    "@types/node": ^20.12.12
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": ^7.9.0
 | 
			
		||||
    "@typescript-eslint/parser": ^7.9.0
 | 
			
		||||
@@ -6623,7 +6624,7 @@ __metadata:
 | 
			
		||||
  languageName: node
 | 
			
		||||
  linkType: hard
 | 
			
		||||
 | 
			
		||||
"uuid@npm:^3.3.2, uuid@npm:^3.3.3":
 | 
			
		||||
"uuid@npm:^3.3.2":
 | 
			
		||||
  version: 3.4.0
 | 
			
		||||
  resolution: "uuid@npm:3.4.0"
 | 
			
		||||
  bin:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user