Git deployments using SSH
Image used by action has bash and ssh installed
Target server is accessible using has key based SSH authentication (no password support)
param
required
default
description
ssh_host
Y
SSH host
ssh_user
Y
SSH username
ssh_private_key
Y
SSH private key (raw text)
ssh_port
22
SSH port
target_dir
Y
Application directory on remote server
git_remote
origin
Git remote to use
git_branch
current action branch
Git branch to use
callback
Shell command to execute after deployment, workdir being the application's directory on remote server
name : Deploy
on : [ push, pull_request ]
jobs :
staging :
if : github.ref == 'refs/heads/staging'
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
- uses : dimvic/action-ssh-deployment@v1
with :
ssh_host : " ${{ secrets.SSH_HOST }}"
ssh_port : " ${{ secrets.SSH_PORT }}"
ssh_user : " ${{ secrets.SSH_USER }}"
ssh_private_key : " ${{ secrets.SSH_PRIVATE_KEY }}"
target_dir : " ${{ secrets.STAGING_SERVER_PATH }}"
callback : |
RAILS_ENV=production bundle exec rails assets:precompile && \
RAILS_ENV=production bundle exec rails db:migrate && \
touch tmp/restart.txt