tree 29fa78334cf65b42d75c0349ab2ef2298e8fedee
parent 766f6b85148aef2d0253dfaec828f6caee293809
author Tobias Bouschen <tobias.bouschen@googlemail.com> 1611353039 +0100
committer Tobias Bouschen <tobias.bouschen@googlemail.com> 1611862109 +0100

Adjust site build workflow to preserve build artifact history

Adjusts the workflow building and publishing the website to the site
branch to preserve the history of the site branch.

This was done to avoid issues with the Apache backend caused by
force-pushing the new build results to an orphan branch every time.

This new behavior is a bit more brittle than the old one as it relies on
the current state of the site branch. The action will fails if the site
branch is not already present. Additionally, it might also fail if the
branch is in an unexpected state. But, as the action removes all
existing resources, this should be unlikely.

To resolve any issues caused by a missing or corrupted site branch, a
future commit will introduce a recovery workflow that can be used to
manually return the site branch to a usable base state.
