logbook/content/posts/first-attempt.md
2025-02-28 00:18:22 +01:00

54 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "Automating Hugo Deployment with Gitea Actions"
date: 2025-02-27
author: "Dev"
tags: ["gitea", "ci/cd", "hugo"]
---
Recently, I tried setting up **Gitea Actions** to automatically update my Hugo blog whenever I pushed new content. The idea was simple:
- Use Giteas built-in CI/CD to pull the repo,
- Build the site using Hugo,
- Deploy it to the server.
## Setting Up Gitea Actions
First, I created a `.gitea/workflows/deploy.yml` file with the following steps:
```yaml
name: Deploy Hugo Site
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v3
- name: Install Hugo
run: |
sudo apt update && sudo apt install -y hugo
- name: Build site
run: hugo -D
- name: Deploy to server
run: |
scp -r public/* user@server:/var/www/html/
```
# Authentication Issues 😩
To deploy, I needed SSH access to the server. Gitea doesnt have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.
![My SSH Key](/images/mykey.png)
I knew this wasn't ideal, but I just wanted to get it working first. Unfortunately, after multiple attempts, it still failed with permission denied (publickey) errors.
# What's Next? 🤔
Instead of fighting with Gitea Actions, I decided to try something else. In my next post, I'll explain how I switched to a simpler, more reliable approach using a sync service.