yousifa / gcs-bucket-sync-action

Sync a Github repository with a Google Cloud Storage bucket.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

  • Sync files/directories from your repository to your bucket
  • Delete files/directories from your bucket which where removed in your repository
  • 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 exiting bucket, make sure that your repository includes the whole content of it, otherwise you could lose data!

Inputs

  • secrets Your Google service account credentials as json. (Required)
  • bucket Name of the target bucket. (Required)
  • subdirectory Name of the subdirectory to deploy.
  • exclude Regex 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/gcs-bucket-sync-action@1.0
        with:
          secrets: ${{ secrets.google_service_account_credentials }}
          bucket: 'patrickwyler.com'
          subdirectory: 'build'
          exclude: '.*\.md$|.gitignore$|.git\/.*$|.github\/.*$'

Diagram

Diagram

Tags

GCP, Google Cloud Platform, GCS, Google Cloud Storage, Bucket, Sync, Syncing, Uploading, Upload

About

Sync a Github repository with a Google Cloud Storage bucket.

License:MIT License


Languages

Language:Shell 77.3%Language:Dockerfile 22.7%