From 0e96b3a37f22d1d9dfe7873b94c317ebeda35bd4 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Sun, 16 Mar 2025 23:24:20 +0100 Subject: [PATCH] feat(tooling): add actions workflow for test build and deploy --- .forgejo/workflows/main.yaml | 34 ++++++++++++++++++++++++++++++ GNUmakefile | 12 +++++------ content/blog/ansible/gotosocial.md | 2 +- 3 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 .forgejo/workflows/main.yaml diff --git a/.forgejo/workflows/main.yaml b/.forgejo/workflows/main.yaml new file mode 100644 index 0000000..cd3ed55 --- /dev/null +++ b/.forgejo/workflows/main.yaml @@ -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 }}' diff --git a/GNUmakefile b/GNUmakefile index d2c51d9..4f6c136 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -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 diff --git a/content/blog/ansible/gotosocial.md b/content/blog/ansible/gotosocial.md index 035cb6b..c9e9cd9 100644 --- a/content/blog/ansible/gotosocial.md +++ b/content/blog/ansible/gotosocial.md @@ -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: