diff --git a/template/.gitea/workflows/deploy.yml b/template/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..8c1dcc4 --- /dev/null +++ b/template/.gitea/workflows/deploy.yml @@ -0,0 +1,47 @@ +name: Deploy to R2 + +on: + push: + branches: [main] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install rclone + run: curl -s https://rclone.org/install.sh | sudo bash + + - name: Deploy to R2 + env: + R2_ACCESS_KEY: ${{ secrets.R2_ACCESS_KEY }} + R2_SECRET_KEY: ${{ secrets.R2_SECRET_KEY }} + R2_ENDPOINT: ${{ secrets.R2_ENDPOINT }} + R2_BUCKET: multisite-bucket + run: | + CUSTOMER_ID="${GITHUB_REPOSITORY##*/}" + SOURCE_DIR="." + if [ -d "public" ]; then SOURCE_DIR="public"; fi + + mkdir -p ~/.config/rclone + cat > ~/.config/rclone/rclone.conf << EOF2 + [r2] + type = s3 + provider = Cloudflare + access_key_id = ${R2_ACCESS_KEY} + secret_access_key = ${R2_SECRET_KEY} + endpoint = ${R2_ENDPOINT} + acl = private + no_check_bucket = true + EOF2 + + echo "Deploying $CUSTOMER_ID from $SOURCE_DIR" + rclone sync "$SOURCE_DIR" "r2:${R2_BUCKET}/sites/${CUSTOMER_ID}/" \ + --exclude ".git/**" --exclude ".gitea/**" \ + --exclude "*.md" --exclude "README*" \ + --exclude ".rebuild" --exclude ".gitignore" --exclude "LICENSE" \ + -v + + echo "Deployed to: https://${CUSTOMER_ID}.actions.it.com"