assets/.github/workflows/synchronize-cdn.yml

57 lines
1.4 KiB
YAML
Raw Normal View History

2022-04-05 19:12:32 +00:00
name: Synchronize with CDN
on:
push:
branches:
- "master"
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
sync_with_cdn:
name: Synchronize with CDN
2022-04-05 19:12:32 +00:00
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Synchronize with CDN
env:
AWS_ACCESS_KEY: ${{ secrets.CDN_ACCESS_KEY }}
AWS_SECRET_KEY: ${{ secrets.CDN_SECRET_KEY }}
CDN_BUCKET: ${{ secrets.CDN_BUCKET }}
run: |
#!/bin/bash
set -e
set -o pipefail
CURRENT_DIR=$(pwd)
2022-04-05 19:12:32 +00:00
# Install rclone
TMPDIR=$(mktemp -d)
cd $TMPDIR
2022-04-05 19:20:46 +00:00
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
2022-04-05 19:12:32 +00:00
cd $CURRENT_DIR
2022-04-05 19:12:32 +00:00
# Create a S3 target
rclone config create s3 s3 provider=DigitalOcean env_auth=true region=fra1 endpoint=fra1.digitaloceanspaces.com acl=public-read
# remove `.github` and any other paths we do not want in the CDN
rm -rf .github .git
2022-04-05 19:12:32 +00:00
# SYNC
rclone sync -P . s3:$CDN_BUCKET/
2022-04-05 19:33:52 +00:00
rclone config delete s3