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 }} GDRIVE_FOLDER_ID: ${{ vars.GDRIVE_FOLDER_ID }} GDRIVE_SERVICE_ACCOUNT_JSON: ${{ secrets.GDRIVE_SERVICE_ACCOUNT_JSON }} run: | curl -fsSL https://rclone.org/install.sh | sudo bash key=$(mktemp) config=$(mktemp) trap 'rm -f "$key" "$config"' EXIT printf '%s' "$GDRIVE_SERVICE_ACCOUNT_JSON" > "$key" printf '[gdrive]\ntype = drive\nscope = drive\nroot_folder_id = %s\nservice_account_file = %s\n' "$GDRIVE_FOLDER_ID" "$key" > "$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