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.
Required The name of the Convox Rack you wish to deploy to.
Required The name of the app you wish to deploy to.
Required The value of your Convox Deploy Key
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
Optional Whether to utilise the docker cache during the build. Defaults to true.
Optional Use a custom path for your convox.yml
Optional Pass docker build arguments to the build process. Build args are key-value pairs separated by a newline:
buildargs: |
BASEIMAGE=myimage
MYARG=hello
uses: convox/[email protected]
with:
rack: staging
app: myapp
password: ${{ secrets.CONVOX_DEPLOY_KEY }}
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 }}