Skip to content

Deploy

Deploy #290

Workflow file for this run

name: Deploy
env:
AWS_REGION: 'us-east-1'
permissions:
id-token: write
contents: read
on:
# workflow_run:
# workflows: [CI]
# types: [completed]
# branches: [main]
workflow_dispatch:
inputs:
environment:
required: true
default: 'staging'
type: choice
options:
- staging
- production
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Set up Ruby
uses: actions/setup-ruby@v1
- name: Install Kamal
run: gem install kamal -v '~> 1.0.0'
- name: Install SSH key
uses: shimataro/ssh-key-action@v2.5.1
with:
key: ${{ secrets.SSH_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS }}
config: |
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v3.0.1
with:
role-to-assume: arn:aws:iam::037129986032:role/github_deploy
role-session-name: GithubDeploy
aws-region: ${{ env.AWS_REGION }}
- id: slack
name: Notify Deploy Start
uses: slackapi/slack-github-action@v1.24.0
with:
channel-id: 'C05APTXCTSM'
payload: |
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*CommCare Connect Deploy to ${{ inputs.environment }}*"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Status*: In Progress"
}
},
{
"type": "context",
"elements": [
{
"type": "mrkdwn",
"text": "<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Deploy Run>"
}
]
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN}}
- id: deploy
working-directory: ./deploy
run: 'kamal deploy -d ${{ inputs.environment }}'
- name: Notify Deploy End
uses: slackapi/slack-github-action@v1.24.0
if: always()
with:
channel-id: 'C05APTXCTSM'
update-ts: ${{ steps.slack.outputs.ts }}
payload: |
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*CommCare Connect Deploy to ${{ inputs.environment }}*"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Status*: ${{ steps.deploy.conclusion }}"
}
},
{
"type": "context",
"elements": [
{
"type": "mrkdwn",
"text": "<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Deploy Run>"
}
]
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN}}