Skip to content

A Github Action to build and promote and app to Convox

Notifications You must be signed in to change notification settings

convox/action-deploy

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Convox Deploy Action

If you Install a Convox Rack using the cloud provider of your choice and create a convox.yml to describe your application and its dependencies you can use this action to automatically deploy your app. The Deploy action performs the functions of combining the Build and Promote actions but in a single step. If you want to create more advanced workflows you can do so by using our individual actions.

Inputs

rack

Required The name of the Convox Rack you wish to deploy to.

app

Required The name of the app you wish to deploy to.

password

Required The value of your Convox Deploy Key

host

Optional The host name of your Convox Console. This defaults to console.convox.com and only needs to be overwritten if you have a self-hosted console

cached

Optional Whether to utilise the docker cache during the build. Defaults to true.

manifest

Optional Use a custom path for your convox.yml

buildargs

Optional Pass docker build arguments to the build process. Build args are key-value pairs separated by a newline:

  buildargs: |
    BASEIMAGE=myimage
    MYARG=hello

Example Usage

uses: convox/[email protected]
with:
  rack: staging
  app: myapp
  password: ${{ secrets.CONVOX_DEPLOY_KEY }}

Creating More Advanced Workflows

Convox provides a full set of Actions to enable a wide variety of deployment workflows. The following actions are available:

Authenticates your Convox account You should run this action as the first step in your workflow

Builds an app and creates a release which can be promoted later

Runs a command (such as a migration) using a previously built release before or after it is promoted

Promotes a release

Example workflow building a Rails app and running migrations before deploying:

name: CD

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: checkout
      id: checkout
      uses: actions/checkout@v1
    - name: login
      id:login
      uses: convox/action-login@v1
      with:
        password: ${{ secrets.CONVOX_DEPLOY_KEY }}
    - name: build
      id: build
      uses: convox/action-build@v1
      with:
        rack: staging
        app: myrailsapp
    - name: migrate
      id:migrate
      uses: convox/action-run@v1
      with:
        rack: staging
        app: myrailsapp
        service: web
        command: rake db:migrate
        release: ${{ steps.build.outputs.release }}
    - name: promote
      id: promote
      uses: convox/action-promote@v1
      with:
        rack: staging
        app: myrailsapp
        release: ${{ steps.build.outputs.release }}