From c56cd87d23f33ea45a3a36645f22dad64a10ce7d Mon Sep 17 00:00:00 2001 From: almouse Date: Wed, 12 Jul 2023 00:39:21 +0000 Subject: [PATCH] Upload files to "/" --- .gitignore | 91 ++++++++++++++++++ LICENSE | 191 +++++++++++++++++++++++++++++++++++++ README.md | 270 +++++++++++++++++++++++++++++++++++++++++++++++++++++ action.yml | 117 +++++++++++++++++++++++ 4 files changed, 669 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 action.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa82f5f --- /dev/null +++ b/.gitignore @@ -0,0 +1,91 @@ +node_modules +lib + +# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6d8d58f --- /dev/null +++ b/LICENSE @@ -0,0 +1,191 @@ + + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2013-2018 Docker, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f14df6 --- /dev/null +++ b/README.md @@ -0,0 +1,270 @@ +[![GitHub release](https://img.shields.io/github/release/docker/build-push-action.svg?style=flat-square)](https://github.com/docker/build-push-action/releases/latest) +[![GitHub marketplace](https://img.shields.io/badge/marketplace-build--and--push--docker--images-blue?logo=github&style=flat-square)](https://github.com/marketplace/actions/build-and-push-docker-images) +[![CI workflow](https://img.shields.io/github/actions/workflow/status/docker/build-push-action/ci.yml?branch=master&label=ci&logo=github&style=flat-square)](https://github.com/docker/build-push-action/actions?workflow=ci) +[![Test workflow](https://img.shields.io/github/actions/workflow/status/docker/build-push-action/test.yml?branch=master&label=test&logo=github&style=flat-square)](https://github.com/docker/build-push-action/actions?workflow=test) +[![Codecov](https://img.shields.io/codecov/c/github/docker/build-push-action?logo=codecov&style=flat-square)](https://codecov.io/gh/docker/build-push-action) + +## About + +GitHub Action to build and push Docker images with [Buildx](https://github.com/docker/buildx) +with full support of the features provided by [Moby BuildKit](https://github.com/moby/buildkit) +builder toolkit. This includes multi-platform build, secrets, remote cache, etc. +and different builder deployment/namespacing options. + +![Screenshot](.github/build-push-action.png) + +___ + +* [Usage](#usage) + * [Git context](#git-context) + * [Path context](#path-context) +* [Examples](#examples) + * [Multi-platform image](https://docs.docker.com/build/ci/github-actions/multi-platform/) + * [Secrets](https://docs.docker.com/build/ci/github-actions/secrets/) + * [Push to multi-registries](https://docs.docker.com/build/ci/github-actions/push-multi-registries/) + * [Manage tags and labels](https://docs.docker.com/build/ci/github-actions/manage-tags-labels/) + * [Cache management](https://docs.docker.com/build/ci/github-actions/cache/) + * [Export to Docker](https://docs.docker.com/build/ci/github-actions/export-docker/) + * [Test before push](https://docs.docker.com/build/ci/github-actions/test-before-push/) + * [Local registry](https://docs.docker.com/build/ci/github-actions/local-registry/) + * [Share built image between jobs](https://docs.docker.com/build/ci/github-actions/share-image-jobs/) + * [Named contexts](https://docs.docker.com/build/ci/github-actions/named-contexts/) + * [Copy image between registries](https://docs.docker.com/build/ci/github-actions/copy-image-registries/) + * [Update Docker Hub repo description](https://docs.docker.com/build/ci/github-actions/update-dockerhub-desc/) +* [Customizing](#customizing) + * [inputs](#inputs) + * [outputs](#outputs) +* [Troubleshooting](#troubleshooting) +* [Contributing](#contributing) + +## Usage + +In the examples below we are also using 3 other actions: + +* [`setup-buildx`](https://github.com/docker/setup-buildx-action) action will + create and boot a builder using by default the [`docker-container` driver](https://docs.docker.com/build/building/drivers/docker-container/). + This is **not required but recommended** using it to be able to build + multi-platform images, export cache, etc. +* [`setup-qemu`](https://github.com/docker/setup-qemu-action) action can be + useful if you want to add emulation support with QEMU to be able to build + against more platforms. +* [`login`](https://github.com/docker/login-action) action will take care to + log in against a Docker registry. + +### Git context + +By default, this action uses the [Git context](https://docs.docker.com/engine/reference/commandline/build/#git-repositories), +so you don't need to use the [`actions/checkout`](https://github.com/actions/checkout/) +action to check out the repository as this will be done directly by [BuildKit](https://github.com/moby/buildkit). + +The git reference will be based on the [event that triggered your workflow](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows) +and will result in the following context: `https://github.com//.git#`. + +```yaml +name: ci + +on: + push: + branches: + - 'main' + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - + name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - + name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push + uses: docker/build-push-action@v4 + with: + push: true + tags: user/app:latest +``` + +Be careful because **any file mutation in the steps that precede the build step +will be ignored, including processing of the `.dockerignore` file** since +the context is based on the Git reference. However, you can use the +[Path context](#path-context) using the [`context` input](#inputs) alongside +the [`actions/checkout`](https://github.com/actions/checkout/) action to remove +this restriction. + +Default Git context can also be provided using the [Handlebars template](https://handlebarsjs.com/guide/) +expression `{{defaultContext}}`. Here we can use it to provide a subdirectory +to the default Git context: + +```yaml + - + # Setting up Docker Buildx with docker-container driver is required + # at the moment to be able to use a subdirectory with Git context + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - + name: Build and push + uses: docker/build-push-action@v4 + with: + context: "{{defaultContext}}:mysubdir" + push: true + tags: user/app:latest +``` + +> **Warning** +> +> Subdirectory for Git context is available from [BuildKit v0.9.0](https://github.com/moby/buildkit/releases/tag/v0.9.0). +> If you're using the `docker` builder (default if `setup-buildx-action` not used), +> then BuildKit in Docker Engine will be used. As Docker Engine < v22.x.x embeds +> Buildkit 0.8.2 at the moment, it does not support this feature. It's therefore +> required to use the `setup-buildx-action` at the moment. + +Building from the current repository automatically uses the [GitHub Token](https://docs.github.com/en/actions/security-guides/automatic-token-authentication), +so it does not need to be passed. If you want to authenticate against another +private repository, you have to use a [secret](https://docs.docker.com/build/ci/github-actions/secrets) +named `GIT_AUTH_TOKEN` to be able to authenticate against it with Buildx: + +```yaml + - + name: Build and push + uses: docker/build-push-action@v4 + with: + push: true + tags: user/app:latest + secrets: | + GIT_AUTH_TOKEN=${{ secrets.MYTOKEN }} +``` + +### Path context + +```yaml +name: ci + +on: + push: + branches: + - 'main' + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v3 + - + name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - + name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: user/app:latest +``` + +## Examples + +* [Multi-platform image](https://docs.docker.com/build/ci/github-actions/multi-platform/) +* [Secrets](https://docs.docker.com/build/ci/github-actions/secrets/) +* [Push to multi-registries](https://docs.docker.com/build/ci/github-actions/push-multi-registries/) +* [Manage tags and labels](https://docs.docker.com/build/ci/github-actions/manage-tags-labels/) +* [Cache management](https://docs.docker.com/build/ci/github-actions/cache/) +* [Export to Docker](https://docs.docker.com/build/ci/github-actions/export-docker/) +* [Test before push](https://docs.docker.com/build/ci/github-actions/test-before-push/) +* [Local registry](https://docs.docker.com/build/ci/github-actions/local-registry/) +* [Share built image between jobs](https://docs.docker.com/build/ci/github-actions/share-image-jobs/) +* [Named contexts](https://docs.docker.com/build/ci/github-actions/named-contexts/) +* [Copy image between registries](https://docs.docker.com/build/ci/github-actions/copy-image-registries/) +* [Update Docker Hub repo description](https://docs.docker.com/build/ci/github-actions/update-dockerhub-desc/) + +## Customizing + +### inputs + +Following inputs can be used as `step.with` keys + +> `List` type is a newline-delimited string +> ```yaml +> cache-from: | +> user/app:cache +> type=local,src=path/to/dir +> ``` + +> `CSV` type is a comma-delimited string +> ```yaml +> tags: name/app:latest,name/app:1.0.0 +> ``` + +| Name | Type | Description | +|--------------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `add-hosts` | List/CSV | List of [customs host-to-IP mapping](https://docs.docker.com/engine/reference/commandline/build/#add-entries-to-container-hosts-file---add-host) (e.g., `docker:10.180.0.1`) | +| `allow` | List/CSV | List of [extra privileged entitlement](https://docs.docker.com/engine/reference/commandline/buildx_build/#allow) (e.g., `network.host,security.insecure`) | +| `attests` | List | List of [attestation](https://docs.docker.com/build/attestations/) parameters (e.g., `type=sbom,generator=image`) | +| `builder` | String | Builder instance (see [setup-buildx](https://github.com/docker/setup-buildx-action) action) | +| `build-args` | List | List of [build-time variables](https://docs.docker.com/engine/reference/commandline/buildx_build/#build-arg) | +| `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`) | +| `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`) | +| `labels` | List | List of metadata for an image | +| `load` | Bool | [Load](https://docs.docker.com/engine/reference/commandline/buildx_build/#load) is a shorthand for `--output=type=docker` (default `false`) | +| `network` | String | Set the networking mode for the `RUN` instructions during build | +| `no-cache` | Bool | Do not use cache when building the image (default `false`) | +| `no-cache-filters` | List/CSV | Do not cache specified stages | +| `outputs`¹ | List | List of [output destinations](https://docs.docker.com/engine/reference/commandline/buildx_build/#output) (format: `type=local,dest=path`) | +| `platforms` | List/CSV | List of [target platforms](https://docs.docker.com/engine/reference/commandline/buildx_build/#platform) for build | +| `provenance` | Bool/String | Generate [provenance](https://docs.docker.com/build/attestations/slsa-provenance/) attestation for the build (shorthand for `--attest=type=provenance`) | +| `pull` | Bool | Always attempt to pull all referenced images (default `false`) | +| `push` | Bool | [Push](https://docs.docker.com/engine/reference/commandline/buildx_build/#push) is a shorthand for `--output=type=registry` (default `false`) | +| `sbom` | Bool/String | Generate [SBOM](https://docs.docker.com/build/attestations/sbom/) attestation for the build (shorthand for `--attest=type=sbom`) | +| `secrets` | List | List of [secrets](https://docs.docker.com/engine/reference/commandline/buildx_build/#secret) to expose to the build (e.g., `key=string`, `GIT_AUTH_TOKEN=mytoken`) | +| `secret-files` | List | List of [secret files](https://docs.docker.com/engine/reference/commandline/buildx_build/#secret) to expose to the build (e.g., `key=filename`, `MY_SECRET=./secret.txt`) | +| `shm-size` | String | Size of [`/dev/shm`](https://docs.docker.com/engine/reference/commandline/buildx_build/#shm-size) (e.g., `2g`) | +| `ssh` | List | List of [SSH agent socket or keys](https://docs.docker.com/engine/reference/commandline/buildx_build/#ssh) to expose to the build | +| `tags` | List/CSV | List of tags | +| `target` | String | Sets the target stage to build | +| `ulimit` | List | [Ulimit](https://docs.docker.com/engine/reference/commandline/buildx_build/#ulimit) options (e.g., `nofile=1024:1024`) | +| `github-token` | String | GitHub Token used to authenticate against a repository for [Git context](#git-context) (default `${{ github.token }}`) | + +> **Note** +> +> * ¹ multiple `outputs` are [not yet supported](https://github.com/moby/buildkit/issues/1555) + +### outputs + +Following outputs are available + +| Name | Type | Description | +|------------|---------|-----------------------| +| `imageid` | String | Image ID | +| `digest` | String | Image digest | +| `metadata` | JSON | Build result metadata | + +## Troubleshooting + +See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) + +## Contributing + +Want to contribute? Awesome! You can find information about contributing to +this project in the [CONTRIBUTING.md](/.github/CONTRIBUTING.md) diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..9edfb3a --- /dev/null +++ b/action.yml @@ -0,0 +1,117 @@ +# https://help.github.com/en/articles/metadata-syntax-for-github-actions +name: Build and push Docker images +description: Build and push Docker images with Buildx +author: docker +branding: + icon: 'anchor' + color: 'blue' + +inputs: + add-hosts: + description: "List of a customs host-to-IP mapping (e.g., docker:10.180.0.1)" + required: false + allow: + description: "List of extra privileged entitlement (e.g., network.host,security.insecure)" + required: false + attests: + description: "List of attestation parameters (e.g., type=sbom,generator=image)" + required: false + build-args: + description: "List of build-time variables" + required: false + build-contexts: + description: "List of additional build contexts (e.g., name=path)" + required: false + builder: + description: "Builder instance" + required: false + cache-from: + description: "List of external cache sources for buildx (e.g., user/app:cache, type=local,src=path/to/dir)" + required: false + cache-to: + description: "List of cache export destinations for buildx (e.g., user/app:cache, type=local,dest=path/to/dir)" + required: false + cgroup-parent: + description: "Optional parent cgroup for the container used in the build" + required: false + context: + description: "Build's context is the set of files located in the specified PATH or URL" + required: false + file: + description: "Path to the Dockerfile" + required: false + labels: + description: "List of metadata for an image" + required: false + load: + description: "Load is a shorthand for --output=type=docker" + required: false + default: 'false' + network: + description: "Set the networking mode for the RUN instructions during build" + required: false + no-cache: + description: "Do not use cache when building the image" + required: false + default: 'false' + no-cache-filters: + description: "Do not cache specified stages" + required: false + outputs: + description: "List of output destinations (format: type=local,dest=path)" + required: false + platforms: + description: "List of target platforms for build" + required: false + provenance: + description: "Generate provenance attestation for the build (shorthand for --attest=type=provenance)" + required: false + pull: + description: "Always attempt to pull all referenced images" + required: false + default: 'false' + push: + description: "Push is a shorthand for --output=type=registry" + required: false + default: 'false' + sbom: + description: "Generate SBOM attestation for the build (shorthand for --attest=type=sbom)" + required: false + secrets: + description: "List of secrets to expose to the build (e.g., key=string, GIT_AUTH_TOKEN=mytoken)" + required: false + secret-files: + description: "List of secret files to expose to the build (e.g., key=filename, MY_SECRET=./secret.txt)" + required: false + shm-size: + description: "Size of /dev/shm (e.g., 2g)" + required: false + ssh: + description: "List of SSH agent socket or keys to expose to the build" + required: false + tags: + description: "List of tags" + required: false + target: + description: "Sets the target stage to build" + required: false + ulimit: + description: "Ulimit options (e.g., nofile=1024:1024)" + required: false + github-token: + description: "GitHub Token used to authenticate against a repository for Git context" + default: ${{ github.token }} + required: false + +outputs: + imageid: + description: 'Image ID' + digest: + description: 'Image digest' + metadata: + description: 'Build result metadata' + +runs: + using: 'node16' + main: 'dist/index.js' + post: 'dist/index.js'