GitHub Action for running Packer commands.
Add the Action to your GitHub Workflow like so:
---
name: Packer
on:
push:
jobs:
packer:
runs-on: ubuntu-latest
name: packer
steps:
- name: Checkout Repository
uses: actions/checkout@v2
# fix backwards incompatibilities in template
- name: Fix Template
uses: hashicorp/packer-github-actions@master
with:
command: fix
# validate templates
- name: Validate Template
uses: hashicorp/packer-github-actions@master
with:
command: validate
arguments: -syntax-only
target: packer.pkr.hcl
# build artifact
- name: Build Artifact
uses: hashicorp/packer-github-actions@master
with:
command: build
arguments: "-color=false -on-error=abort"
target: packer.pkr.hcl
env:
PACKER_LOG: 1
HCP_CLIENT_ID: ${{ secrets.HCP_CLIENT_ID }}
HCP_CLIENT_SECRET: ${{ secrets.HCP_CLIENT_SECRET }}
# additional steps to process artifacts
Name | Description | Required | Default |
---|---|---|---|
command |
command to execute | yes | |
arguments |
arguments for command | no | |
target |
file(s) or directory to target | no | . |
command
supports the following subset of Packer CLI commands:
- init to download Packer plugin binaries
- build to generate a set of artifacts from a template
- fix to find and correct backwards incompatible stanzas in a template
- validate to validate the syntax and configuration of a template
Other CLI commands (console
, inspect
and version
) are technically supported, but have limited utility in a GitHub Actions Workflow, due to their interactive nature.
arguments
supports all options available for the respective command
.
The arguments must be provided as a single string. Multiple arguments should be concatenated like so: -color=false -on-error=abort
target
supports a string consisting of one or more file or directory paths:
# single file
target: artifacts.pkr.hcl
# multiple files, separated by whitespace
target: artifacts.pkr.hcl packer.pkr.hcl
# working directory
target: .
The Action will iterate over each file and run each command
, separately.
Packer has an option to enable more detailed logs by setting the PACKER_LOG
environment variable.
Any value other than ""
(empty string) and "0"
, will cause detailed logs to appear on stderr.
To set PACKER_LOG=1
, simply define the environment variable in the step configuration like:
# build artifact
- name: Build Artifact
uses: hashicorp/packer-github-actions@master
with:
command: build
arguments: "-color=false -on-error=abort"
target: packer.pkr.hcl
env:
PACKER_LOG: 1
- To enable debug logging, create a secret named
ACTIONS_STEP_DEBUG
with the valuetrue
. See here for more information.
This module is maintained by the contributors listed on GitHub.
Development of this module was sponsored by Operate Happy.
Licensed under the Apache License, Version 2.0 (the "License").
You may obtain a copy of the License at 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.