gcs-bucket-sync-action
gcs-bucket-sync-action copied to clipboard
Sync a Github repository with a Google Cloud Storage bucket.
GCS Bucket Sync Action
This action helps by easily syncing a Github repository with a Google Cloud Storage bucket. It is very generic and can be used for different purposes. I used it for uploading my static website.
Features
- [x] Sync files/directories from your repository to your bucket
- [x] Delete files/directories from your bucket which where removed in your repository
- [x] Exclude certain files from being synced with the bucket
Requirements
- An existing empty* bucket
- A service account with access to the bucket
- The service account key (json format)
*If you want to sync to an existing bucket, make sure that your repository includes the whole content of it, otherwise you will lose data!
Inputs
secretsYour Google service account credentials as json. (Required)bucketName of the target bucket. (Required)sync_dir_fromRepository directory path to sync, for example,my_folder/to_sync. It is empty by default.sync_dir_toBucket directory path to sync to, for example,my_folder/to_sync. It is empty by default.excludeRegex for excluding files/dirs. (gsutil rsync doc)
Example
name: Deploy
on:
push:
branches:
- main
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Sync
uses: patrickwyler/[email protected]
with:
secrets: ${{ secrets.google_service_account_credentials }}
bucket: 'patrickwyler.com'
exclude: '.*\.md$|\.gitignore$|\.git/.*$|\.github/.*$'
Diagram
Tags
GCP, Google Cloud Platform, GCS, Google Cloud Storage, Bucket, Sync, Syncing, Uploading, Upload