diff --git a/.gitea/workflows/sync-google-drive.yml b/.gitea/workflows/sync-google-drive.yml new file mode 100644 index 0000000..886cc46 --- /dev/null +++ b/.gitea/workflows/sync-google-drive.yml @@ -0,0 +1,32 @@ +name: Sync changed files to Google Drive + +on: + push: + branches: [main] + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Upload changed files + env: + BEFORE: ${{ gitea.event.before }} + AFTER: ${{ gitea.event.after }} + RCLONE_CONFIG_GDRIVE: ${{ secrets.RCLONE_CONFIG_GDRIVE }} + run: | + curl -fsSL https://rclone.org/install.sh | sudo bash + config=$(mktemp) + trap 'rm -f "$config"' EXIT + printf '%s' "$RCLONE_CONFIG_GDRIVE" > "$config" + if test "${BEFORE//0/}"; then + git diff --name-only --diff-filter=ACMRT -z "$BEFORE" "$AFTER" + else + git ls-files -z + fi | while IFS= read -r -d '' file; do + case "$file" in build|build/*) continue ;; esac + rclone copyto --config "$config" "$file" "gdrive:$file" + done