June 20-22 Announcing HashiConf Europe full schedule: keynotes, sessions, labs & more Register Now
  • Infrastructure
    • terraform
    • packer
  • Networking
    • consul
  • Security
    • vault
    • boundary
  • Applications
    • nomad
    • waypoint
    • vagrant
  • HashiCorp Cloud Platform

    A fully managed platform to automate infrastructure on any cloud with HashiCorp products.

    • consul
    • terraform
    • vault
    • packerbeta
    Visit cloud.hashicorp.com
  • Overview
  • Tutorials
  • Docs
  • CLI
  • Plugins
  • Community
GitHub
Download
    • v0.8.x (latest)
    • v0.7.x
    • v0.6.x
    • v0.5.x
    • v0.4.x
    • v0.3.x
    • v0.2.x
    • v0.1.x
    • Overview
      • Overview
      • Helm
      • Heroku, Vercel, etc.
      • Kubernetes
  • Getting Started
    • Overview
    • Compatibility Promise
    • Protocol Version Table
    • Release Notifications
      • Overview
      • Upgrade to 0.2.0

    • Install
    • Externally Built Images
    • Building Container Images
    • Helm Deployment
    • YAML-Free Deployment
    • YAML Directory Deployment
    • Resource Status
    • ConfigMaps and Secrets

    • Overview
    • Git Integration
    • Remote Operations
    • Overview
    • Build
    • Deploy
    • Release
    • Hooks
    • Labels
    • Workspace and Label Scoping
    • Overview
      • Overview
      • Input Variables
      • External Data
      • artifact
      • deploy
      • entrypoint
      • labels
      • path
      • workspace
      • Overview
      • Full Reference
      • Templating
      • Overview
      • Expressions
      • JSON Syntax
    • app
    • build
    • config
    • deploy
    • hook
    • plugin
    • registry
    • release
    • runner
    • url
    • use
    • variable
  • URL Service
  • Logs
  • Exec
    • Overview
    • Dynamic Values
    • Files
    • Internal Values
    • Workspace and Label Scoping
    • Overview
      • Overview
      • OIDC
      • Overview
      • Maintenance
      • Production
      • Security
    • Express Server Install
    • Overview
    • Configuration
    • Profiles
    • On-Demand Runner
    • Additional Runners
  • Workspaces
  • Plugins
  • Triggers

    • Overview
      • Overview
      • Registering Plugin Components
      • Handling Configuration
      • Implementing the Builder Interface
      • Compiling the Plugin
      • Creating an Example Application
      • Testing the Plugin
    • Initializing the SDK
    • Passing Values Between Components
      • Overview
      • Authenticator
      • Configurable
      • ConfigurableNotify
      • Builder
      • Registry
      • Platform
      • ReleaseManager
      • Destroy
      • Status
      • Default Parameters
      • Overview
    • Overview
    • Disable
    • Overview
    • GitHub Actions
    • GitLab CI/CD
    • CircleCI
    • Jenkins
  • Troubleshooting
  • Glossary

    • Overview
    • Architecture
    • Operation Execution
  • Roadmap
Type '/' to Search

»Integrating Waypoint with GitHub Actions

Running Waypoint and GitHub Actions takes minimal setup and configuration due to a set of GitHub Actions provided to automatically install and run Waypoint. Waypoint can also be configured via these actions to automatically annotate pull requests and commits with relevant statuses of builds, deploys, and releases.

There are two options for utilizing Waypoint and GitHub actions.

»hashicorp/action-setup-waypoint

This action sets up Waypoint based on version. This action can be composed with other steps to run Waypoint, and is currently the recommended approach.

For example, a cloud provider credentials or tooling can be installed or configured before running Waypoint, ensuring it has the appropriate credentials in the environment to run.

The source is available on GitHub at hashicorp/action-setup-waypoint.

»Example

env:
  WAYPOINT_SERVER_TOKEN: ${{ secrets.WAYPOINT_SERVER_TOKEN }}
  WAYPOINT_SERVER_ADDR: waypoint.example.com:9701
  WAYPOINT_SERVER_TLS: 1
  WAYPOINT_SERVER_TLS_SKIP_VERIFY: 1

steps:
  - uses: actions/checkout@v2
  - uses: hashicorp/action-setup-waypoint
    with:
      version: '0.1.0'
- run: waypoint init
- run: waypoint build
env:
  WAYPOINT_SERVER_TOKEN: ${{ secrets.WAYPOINT_SERVER_TOKEN }}
  WAYPOINT_SERVER_ADDR: waypoint.example.com:9701
  WAYPOINT_SERVER_TLS: 1
  WAYPOINT_SERVER_TLS_SKIP_VERIFY: 1

steps:
  - uses: actions/checkout@v2
  - uses: hashicorp/action-setup-waypoint
    with:
      version: '0.1.0'
- run: waypoint init
- run: waypoint build

»hashicorp/action-waypoint

Note: This is an experiment and isn't recommended for consistent usage. For anything beyond experimental, we recommend using action-setup-waypoint.

This action provides an abstraction for working with Waypoint and the GitHub releases and commit statuses APIs. It is intended to be the easiest way to automatically deploy applications with GitHub and Waypoint, only requiring that you are running a Waypoint server and have configured actions as in the below example.

This results in an experience in a pull request similar to the below screenshot.

GitHub Action screenshot

The source is available on GitHub at hashicorp/action-waypoint.

»Example

steps:
  - uses: actions/checkout@v2
  - uses: hashicorp/action-waypoint
    name: Setup
    with:
      version: '0.0.1-beta1'
      github_token: ${{ secrets.GITHUB_TOKEN }}
      waypoint_server_address: 'waypoint.example.com:9701'
      waypoint_server_ui: 'https://waypoint.example.com:9702'
      waypoint_server_token: ${{ secrets.WAYPOINT_SERVER_TOKEN }}
      workspace: default
  - uses: hashicorp/action-waypoint
    name: Build
    with:
      operation: build
      version: '0.0.1-beta1'
      github_token: ${{ secrets.GITHUB_TOKEN }}
      workspace: default
  - uses: hashicorp/action-waypoint
    name: Deploy
    with:
      operation: deploy
      version: '0.0.1-beta1'
      github_token: ${{ secrets.GITHUB_TOKEN }}
      workspace: default
  - uses: hashicorp/action-waypoint
    name: Release
    if: ${{ github.ref == 'refs/heads/main' }}
    with:
      operation: release
      version: '0.0.1-beta1'
      github_token: ${{ secrets.GITHUB_TOKEN }}
      workspace: default
steps:
  - uses: actions/checkout@v2
  - uses: hashicorp/action-waypoint
    name: Setup
    with:
      version: '0.0.1-beta1'
      github_token: ${{ secrets.GITHUB_TOKEN }}
      waypoint_server_address: 'waypoint.example.com:9701'
      waypoint_server_ui: 'https://waypoint.example.com:9702'
      waypoint_server_token: ${{ secrets.WAYPOINT_SERVER_TOKEN }}
      workspace: default
  - uses: hashicorp/action-waypoint
    name: Build
    with:
      operation: build
      version: '0.0.1-beta1'
      github_token: ${{ secrets.GITHUB_TOKEN }}
      workspace: default
  - uses: hashicorp/action-waypoint
    name: Deploy
    with:
      operation: deploy
      version: '0.0.1-beta1'
      github_token: ${{ secrets.GITHUB_TOKEN }}
      workspace: default
  - uses: hashicorp/action-waypoint
    name: Release
    if: ${{ github.ref == 'refs/heads/main' }}
    with:
      operation: release
      version: '0.0.1-beta1'
      github_token: ${{ secrets.GITHUB_TOKEN }}
      workspace: default
github logoEdit this page

Using Waypoint

The best way to understand what Waypoint can enable for your projects is to give it a try.

Waypoint tutorials
Waypoint documentation
Tutorial

Get Started - Kubernetes

Build, deploy, and release applications to a Kubernetes cluster.

View
Tutorial

Introduction to Waypoint

Waypoint enables you to publish any application to any platform with a single file and a single command.

View

Waypoint is maintained by HashiCorp, Inc.

View Code of Conduct
DocumentationCLI ReferenceTutorialsIntegrations
All systems normal