Skip to content

Latest commit

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

GitHub Action: Packer

GitHub Action for running Packer commands.

Table of Contents

Usage

Add the Action to your GitHub Workflow like so:

---
name: Packeron:
push:
jobs:
packer:
runs-on: ubuntu-latestname: packersteps:
- name: Checkout Repositoryuses: actions/checkout@v2# fix backwards incompatibilities in template
- name: Fix Templateuses: hashicorp/packer-github-actions@masterwith:
command: fix# validate templates
- name: Validate Templateuses: hashicorp/packer-github-actions@masterwith:
command: validatearguments: -syntax-onlytarget: packer.pkr.hcl# build artifact
- name: Build Artifactuses: hashicorp/packer-github-actions@masterwith:
command: buildarguments: "-color=false -on-error=abort"target: packer.pkr.hclworking_directory: infrastructure/packerenv:
PACKER_LOG: 1HCP_CLIENT_ID: ${{ secrets.HCP_CLIENT_ID }}HCP_CLIENT_SECRET: ${{ secrets.HCP_CLIENT_SECRET }}# additional steps to process artifacts

Inputs

NameDescriptionRequiredDefault
commandcommand to executeyes
argumentsarguments for commandno
targetfile(s) or directory to targetno.
working_directoryworking directory for commandno.

command

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

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

target supports a string consisting of one or more file or directory paths:

# single filetarget: artifacts.pkr.hcl# multiple files, separated by whitespacetarget: artifacts.pkr.hcl packer.pkr.hcl# working directorytarget: .

The Action will iterate over each file and run each command, separately.

working_directory

working_directory supports a string consisting of a directory path. This should be a relative path in your repository where you want the packer command to run.

Detailed logs

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 Artifactuses: hashicorp/packer-github-actions@masterwith:
command: buildarguments: "-color=false -on-error=abort"target: packer.pkr.hclenv:
PACKER_LOG: 1

Notes

  • To enable debug logging, create a secret named ACTIONS_STEP_DEBUG with the value true. See here for more information.

  • If you want to use HCP Packer as central image repository, do not forget to add HCP Secrets under your repo settings. See here

  • When using HCP Packer Registry, you will need to set HCP_CLIENT_ID and HCP_CLIENT_SECRET environment variables to your job steps. See Service Principals guide for how you can generate these credentials, and Encrypted secrets guide for how you can configure and reference secrets in your Actions.

Author Information

This module is maintained by the contributors listed on GitHub.

Development of this module was sponsored by Operate Happy.

License

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.

About

Run HashiCorp Packer as part of your Workflow

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages