[SCM] postgis.net branch website updated. clarity-final-204-gff13b5c
git at osgeo.org
git at osgeo.org
Fri Jul 24 09:59:07 PDT 2026
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "postgis.net".
The branch, website has been updated
via ff13b5c9a17b469dc58b8f0db4ea3b4dcd1db382 (commit)
via df2394a16b4e6c6aa56939a0445d245bbbe0b8fb (commit)
from f732f363caeef015aaaca1e07e9dc734ef549fe2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ff13b5c9a17b469dc58b8f0db4ea3b4dcd1db382
Merge: f732f36 df2394a
Author: Darafei Praliaskouski <komzpa at gmail.com>
Date: Fri Jul 24 09:59:06 2026 -0700
Merge pull request 'build: publish website output atomically' (!12) from Komzpa/postgis.net:ci/atomic-public-publish-20260724 into website
Reviewed-on: https://gitea.osgeo.org/postgis/postgis.net/pulls/12
commit df2394a16b4e6c6aa56939a0445d245bbbe0b8fb
Author: Darafei Praliaskouski <me at komzpa.net>
Date: Fri Jul 24 19:38:01 2026 +0400
build: publish website output atomically
diff --git a/.gitignore b/.gitignore
index 0e4a390..5cc7e96 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
public
+.public-releases/
+.public.next
/content/development/docs/
.hugo_build.lock
resources
diff --git a/Makefile b/Makefile
index 9241317..b111b72 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,11 @@
.DEFAULT_GOAL := help
+# Keep workflows in short make targets: do not replace them with one-off shell
+# scripts, and split a target before its recipe grows into a screenful of shell.
+
POSTGIS ?= ../postgis
DOCS := content/development/docs
+PUBLIC ?= $(CURDIR)/public
.PHONY: help check check-releases publish site docs ci
@@ -14,11 +18,15 @@ check: check-releases ## Run all tests
check-releases: ## Check release checksums
utils/check_releases_md5.sh
-publish: site ci ## Build the site and CI status in parallel
- chown -R www-data:www-data public
+publish: ## Build the site and CI status, then atomically switch public
+ release="$(CURDIR)/.public-releases/public.$$(date -u +%Y%m%dT%H%M%SZ).$$$$"; \
+ $(MAKE) site ci PUBLIC="$$release" && \
+ chown -R www-data:www-data "$$release" && \
+ ln -sfn "$$release" "$(PUBLIC).next" && \
+ mv -Tf "$(PUBLIC).next" "$(PUBLIC)"
site: docs ## Build the Hugo site with developer docs
- hugo -D
+ hugo -D --destination "$(PUBLIC)"
docs: ## Copy developer docs from the PostGIS checkout
rm -rf "$(DOCS)"
@@ -30,4 +38,4 @@ ci: ## Generate the CI status page
cd "$(POSTGIS)" && python3 utils/ci-status.py \
--config utils/ci-status.json \
--format html \
- --output-dir "$(CURDIR)/public/ci"
+ --output-dir "$(PUBLIC)/ci"
diff --git a/README.md b/README.md
index d2af5f6..b47d62c 100644
--- a/README.md
+++ b/README.md
@@ -46,9 +46,11 @@ Run `make check` after changes, before push
## Production publishing
The build reads developer documentation and the CI-status generator from a
-sibling checkout of `postgis/postgis`. Generated files stay in `public/` and
-are not committed to this repository. `make -j publish` runs the Hugo and CI
-branches in parallel, then restores the ownership expected by nginx.
+sibling checkout of `postgis/postgis`. Generated files stay under
+`.public-releases/`, and the live `public` path is a symbolic link to the
+latest complete release. `make -j publish` builds Hugo and CI status into a new
+release directory, then switches the `public` symlink after both outputs are
+ready.
Create the source checkout once on Debbie:
@@ -65,7 +67,7 @@ Replace the current root cron entry:
with:
```cron
-*/5 * * * * cd /var/www/postgis_website && git clean -fdx && git pull --ff-only && git -C ../postgis pull --ff-only && make -j publish
+*/5 * * * * cd /var/www/postgis_website && git pull --ff-only && git -C ../postgis pull --ff-only && make -j publish
```
This also refreshes `/development/docs/` and `/ci/` when only the PostGIS
-----------------------------------------------------------------------
Summary of changes:
.gitignore | 2 ++
Makefile | 16 ++++++++++++----
README.md | 10 ++++++----
3 files changed, 20 insertions(+), 8 deletions(-)
hooks/post-receive
--
postgis.net
More information about the postgis-tickets
mailing list