github ci/cd

This commit is contained in:
Weetile 2024-10-14 17:49:17 +01:00
parent 6f49705b73
commit 7fc6859f7e
3 changed files with 51 additions and 1 deletions

32
.github/workflows/docker-publish.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: Build and Publish Multi-Architecture Hugo Site
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push multi-platform image
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/weetile.uk:latest

18
Dockerfile Normal file
View File

@ -0,0 +1,18 @@
# Step 1: Build the Hugo site
FROM klakegg/hugo:ext-alpine AS build-stage
# Set the working directory inside the container
WORKDIR /app
# Copy all files to the working directory
COPY . .
# Build the Hugo site
RUN hugo --minify
# Step 2: Use an Apache httpd image to serve the site
FROM httpd:2.4-alpine
# Copy the public folder from the build stage to the Apache document root
COPY --from=build-stage /app/public/ /usr/local/apache2/htdocs/

2
go.mod
View File

@ -1,5 +1,5 @@
module github.com/Weetile/weetile.uk
go 1.22.5
go 1.23
require github.com/jpanther/lynx v1.4.0 // indirect