GitHub Rsync Action

Dalibor Gogic
Dalibor Gogic

Actions are triggered by GitHub platform events directly in a repo and run on-demand workflows as autoscaled containers in response. With GitHub Actions you can automate your workflow from idea to production.

Table of Contents

This GitHub Action deploys everything in GITHUB_WORKSPACE to a folder on a server via rsync over ssh.

Rsync

Rsync is a fast and extraordinarily versatile file copying tool. It can copy locally, to/from another host over any remote shell, or to/from a remote rsync daemon. It offers a large number of options that control every aspect of its behavior and permit very flexible specification of the set of files to be copied. It is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination. Rsync is widely used for backups and mirroring and as an improved copy command for everyday use.

main.workflow
action "Deploy to X"
uses = "daliborgogic/actions/rsync@master"
args = "--experimental build --squash -t $GITHUB_REPOSITORY:$GITHUB_SHA -f Dockerfile ."
secrets = [
  "PRIVATE",
  "HOST",
  "HOST_PATH",
  "USER"
]

Required Secrets

  • PRIVATE private key part of an ssh key pair
  • HOST the host the action will run the command
  • HOST_PATH
  • USER