54 lines
1.5 KiB
Markdown
54 lines
1.5 KiB
Markdown
---
|
||
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 Gitea’s 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 doesn’t have built-in secrets management (like GitHub Actions), so I had to hardcode my SSH private key inside the workflow.
|
||
|
||

|
||
|
||
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.
|
||
|