feat(tooling): add actions workflow for test build and deploy

This commit is contained in:
Julien Dessaux 2025-03-16 23:24:20 +01:00
parent 15cd63fc6c
commit 0e96b3a37f
Signed by: adyxax
GPG key ID: F92E51B86E07177E
3 changed files with 41 additions and 7 deletions

View file

@ -0,0 +1,34 @@
---
on:
push:
branches:
- 'main'
workflow_dispatch:
jobs:
all:
runs-on: 'self-hosted'
steps:
- uses: 'actions/checkout@v4'
- uses: 'actions/setup-go@v5'
with:
go-version-file: 'search/go.mod'
- name: 'fmt'
run: |
make tidy no-dirty
- name: 'check'
run: |
make check no-dirty
- name: 'build'
run: |
make build
- name: 'deploy'
run: |
umask 077
printf '%s' "$SSH_PRIVATE_KEY" | base64 -d > private_key
SSHOPTS="-i private_key -o StrictHostKeyChecking=accept-new"
rsync -a --delete -e "ssh ${SSHOPTS}" public/ www@www.adyxax.org:/srv/www/public/
rsync -e "ssh ${SSHOPTS}" search/search www@www.adyxax.org:/srv/www/
ssh ${SSHOPTS} www@www.adyxax.org "chmod +x search; systemctl --user restart www-search"
env:
SSH_PRIVATE_KEY: '${{ secrets.SSH_PRIVATE_KEY }}'

View file

@ -8,7 +8,6 @@ SHELL := bash
##### Variables ################################################################
CACHEDIR := /tmp/hugo-cache-$(USER)
DESTDIR := public/
HOSTNAME := $(shell hostname -f)
REVISION := $(shell git rev-parse HEAD)
@ -17,7 +16,7 @@ REVISION := $(shell git rev-parse HEAD)
build: ## make build
# TODO make sure to stash everything in content/ ?
@echo "----- Generating site -----"
hugo --gc --minify --cleanDestinationDir -d $(DESTDIR) \
hugo --gc --minify --cleanDestinationDir -d public/ \
--cacheDir $(CACHEDIR) --buildFuture
cp public/index.json search/
cp public/search/index.html search/
@ -28,7 +27,7 @@ build: ## make build
clean: ## make clean
@echo "----- Cleaning old build -----"
rm -f search/index.html search/index.json search/search
rm -rf $(DESTDIR)
rm -rf public
.PHONY: serve
serve: ## make serve # hugo web server development mode
@ -39,9 +38,10 @@ serve: ## make serve # hugo web server development mode
##### Operations ###############################################################
.PHONY: deploy
deploy: ## make deploy
rsync -a $(DESTDIR) root@www.adyxax.org:/srv/www/
rsync search/search root@www.adyxax.org:/usr/local/bin/www-search
ssh root@www.adyxax.org "systemctl restart www-search"
# TODO change to www@www.adyxax.org
rsync -a --delete public/ www@www.adyxax.org:/srv/www/public/
rsync search/search www@www.adyxax.org:/srv/www/
ssh www@www.adyxax.org "systemctl --user restart www-search"
##### Quality ##################################################################
.PHONY: check

View file

@ -1,5 +1,5 @@
---
title: 'Migrating gotosocial from nixos to Debian'
title: 'Migrating gotosocial from NixOS to Debian'
description: 'How I am deploying gotosocial with ansible'
date: '2025-03-16'
tags: