From ee8afd7a52594edf4487220a2615e3ada5a1bdf5 Mon Sep 17 00:00:00 2001 From: Brandon Rozek Date: Sun, 7 Jun 2026 21:37:47 -0400 Subject: [PATCH] Deploy to S3 instead of rsync --- .github/workflows/deploy.yml | 58 ++++++++++++------------------------ deploy.sh | 16 +++++++++- 2 files changed, 34 insertions(+), 40 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 601d55e..8622143 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -7,9 +7,6 @@ on: schedule: - cron: "21 14 * * *" -#concurrency: -# cancel-in-progress: true - defaults: run: shell: bash @@ -20,21 +17,17 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: submodules: true fetch-depth: 0 + lfs: true - name: Git submodule update run: | git pull --recurse-submodules git submodule update --remote --recursive - - name: Pull down Git LFS files - run: | - git lfs fetch - git lfs checkout - - name: Setup Hugo env: HUGO_VERSION: 0.143.1 @@ -43,41 +36,28 @@ jobs: tar -xvzf hugo.tar.gz sudo mv hugo /usr/local/bin - - name: Install SSH Key - run: | - install -m 600 -D /dev/null ~/.ssh/id_rsa - echo "${{ secrets.BUILD_SSH_KEY }}" > ~/.ssh/id_rsa - echo "${{ secrets.HOST_KEY }}" > ~/.ssh/known_hosts - cat < ~/.ssh/config - Host Rozek-Nimbus - Hostname 158.69.216.99 - User build - IdentityFile ~/.ssh/id_rsa - EOL - - name: Build Hugo Website - id: build - run: | - hugo + run: hugo - name: Deploy + env: + AWS_ACCESS_KEY_ID: ${{ secrets.S3_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_APP_KEY }} + AWS_ENDPOINT_URL: ${{ secrets.S3_ENDPOINT }} + S3_BUCKET: rozek-websites + S3_PATH: var/www/brandonrozek run: ./deploy.sh - - name: Install Onion SSH Key - run: | - install -m 600 -D /dev/null ~/.ssh/id_onion - echo "${{ secrets.ONION_BUILD_SSH_KEY }}" > ~/.ssh/id_onion - cat <> ~/.ssh/config - Host Rozek-Nimbus-Onion - Hostname 158.69.216.99 - User build - IdentityFile ~/.ssh/id_onion - EOL - - name: Build Onion Website run: | - hugo --baseURL "http://brozek63j22jry6gof2vszo27vh2ed327bqismqu3somrqu622z73eid.onion/" --destination "public-onion" + rm -rf public/ + hugo --baseURL "http://brozek63j22jry6gof2vszo27vh2ed327bqismqu3somrqu622z73eid.onion/" - - name: Deploy onion website - run: | - rsync -Pazc --exclude=*.bak --delete public-onion/ build@Rozek-Nimbus-Onion:brandonrozek-onion/ + - name: Deploy Onion Website + env: + AWS_ACCESS_KEY_ID: ${{ secrets.S3_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_APP_KEY }} + AWS_ENDPOINT_URL: ${{ secrets.S3_ENDPOINT }} + S3_BUCKET: rozek-websites + S3_PATH: var/www/brandonrozek-onion + run: ./deploy.sh diff --git a/deploy.sh b/deploy.sh index aeba2b0..1ec59c9 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,3 +1,17 @@ #!/usr/bin/env sh -rsync -Pazc --exclude=*.bak --delete public/ build@Rozek-Nimbus:brandonrozek/ +set -e +: "${AWS_ACCESS_KEY_ID:?AWS_ACCESS_KEY_ID is not set}" +: "${AWS_SECRET_ACCESS_KEY:?AWS_SECRET_ACCESS_KEY is not set}" +: "${AWS_ENDPOINT_URL:?AWS_ENDPOINT_URL is not set}" +: "${S3_BUCKET:?S3_BUCKET is not set}" +: "${S3_PATH:?S3_PATH is not set}" + +if [ ! -d "public" ] || [ -z "$(ls -A public)" ]; then + echo "public/ is empty or missing" + exit 1 +fi + +aws s3 sync public/ "s3://${S3_BUCKET}/${S3_PATH}/" \ + --delete \ + --exclude "*.bak" \ No newline at end of file