From e9bdbfee20fef7287053d53a40e9972d36285e9d Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Sun, 14 Sep 2025 17:53:09 +0100 Subject: [PATCH] Add CI Signed-off-by: Nikolaos Karaolidis --- .gitea/Containerfile | 6 +++++ .gitea/workflows/main.yaml | 54 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 .gitea/Containerfile create mode 100644 .gitea/workflows/main.yaml diff --git a/.gitea/Containerfile b/.gitea/Containerfile new file mode 100644 index 0000000..c10cb72 --- /dev/null +++ b/.gitea/Containerfile @@ -0,0 +1,6 @@ +FROM ghcr.io/catthehacker/ubuntu:act-latest + +RUN HUGO_VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | jq -r '.tag_name | ltrimstr("v")') && \ + curl -L -o /tmp/hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz && \ + tar -xzf /tmp/hugo.tar.gz -C /usr/local/bin hugo && \ + rm /tmp/hugo.tar.gz diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml new file mode 100644 index 0000000..7ace871 --- /dev/null +++ b/.gitea/workflows/main.yaml @@ -0,0 +1,54 @@ +name: Build and Release Site + +on: + push: + branches: + - "**" + +jobs: + builder: + uses: karaolidis/workflows/.gitea/workflows/builder.yaml@main + with: + registry: git.karaolidis.com + username: ${{ github.repository_owner }} + secrets: + password: ${{ secrets.REGISTRY_PASSWORD }} + + release: + runs-on: nix + needs: builder + container: + image: ${{ needs.builder.outputs.tag }} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Build Site + run: | + cd themes/caldwell + npm install + cd ../.. + ln -s ./themes/caldwell/node_modules node_modules + hugo --config hugo.toml --minify + + - name: Package Site + run: | + tar -czf site.tar.gz -C public . + + - name: Release + uses: https://github.com/akkuman/gitea-release-action@main + with: + name: "Release ${{ github.sha }}" + tag_name: "release-${{ github.sha }}" + files: site.tar.gz + + - name: Publish + env: + TARGET_URL: https://blog.karaolidis.com/upload + run: | + curl -X POST "$TARGET_URL" \ + -H "Authorization: ${{ secrets.BLOG_API_KEY }}" \ + -H "Content-Type: application/octet-stream" \ + --data-binary @site.tar.gz