From 04adb63bc8705234f0e0a4e7626e3a4e3d722662 Mon Sep 17 00:00:00 2001 From: Jarrod Doyle Date: Sat, 16 Mar 2024 10:46:13 +0000 Subject: [PATCH] Add first attempt at a automated deploy action --- .gitea/workflows/build_and_deploy.yaml | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .gitea/workflows/build_and_deploy.yaml diff --git a/.gitea/workflows/build_and_deploy.yaml b/.gitea/workflows/build_and_deploy.yaml new file mode 100644 index 0000000..a1e4bb2 --- /dev/null +++ b/.gitea/workflows/build_and_deploy.yaml @@ -0,0 +1,41 @@ +# Modified from https://julius-roettgermann.de/post/hugo-cicd/ +name: Build and deploy site +run-name: ${{ gitea.actor }} is building, testing and deploying the static page +on: + push: + branches: + - main + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event." + - run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}." + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: 'recursive' + github-server-url: 'https://jayrude.dev/gitea' + - name: Install apt packages + run: apt update && apt install -y jq rsync + - name: Get latest Hugo version + run: | + url=$(curl --silent "https://api.github.com/repos/gohugoio/hugo/releases/latest" | jq -r '.assets[] | select(.name | contains("linux-amd64.tar.gz")) | .browser_download_url' | grep -E 'hugo_[0-9]+\.[0-9]+\.[0-9]+_linux-amd64.tar.gz') + wget -P /tmp/hugo/ "$url" + version=$(echo "$url" | grep -oP 'hugo_\K[0-9]+\.[0-9]+\.[0-9]+') + echo "Downloaded Hugo version: $version" + - name: Unpack Hugo + run: tar -xf /tmp/hugo/* -C ${{ gitea.workspace }}/bin + - name: Build the static webpage + run: ${{ gitea.workspace }}/bin/hugo --minify + - name: Test static page + run: bash ${{ gitea.workspace }}/bin/test_static_page.sh + - name: Create private key + run: | + echo "${{ secrets.ACT_RUNNER_KEY }}" > /tmp/act_runner_key + chmod 600 /tmp/act_runner_key + - name: rsync public directory + run: | + rsync -avz --delete -e "ssh -i /tmp/act_runner_key -o StrictHostKeyChecking=no" ${{ gitea.workspace }}/public/* root@jayrude.dev:/var/lib/docker/volumes/swag_swag/_data/www + - run: echo "This job's status is ${{ job.status }}." \ No newline at end of file