Website build before merging the base branch often breaks ISO builds on Jenkins
Here's what happens: the website is built from the topic branch (
vagrant/provision/assets/build-tails), which updates PO files; then merging of the base branch (
auto/build) fails as the PO files update has been done and pushed there already, but nobody merged the base branch into all corresponding topic branches yet. Every time I see this happen on Jenkins, I merge the base branch into the topic branch and push it. I've had to manually repair such breakage very often recently. That's a PITA, and we really should not rely on me baby-sitting our Jenkins builds this much, for our dev & QA process (e.g. I just did that for the #5630 branch to ensure anonym has enough data when he'll evaluate it).
I think this scenario is quite common: pretty often we don't bother updating website PO files after merging doc changes into testing/devel, to avoid conflicts when merging master into them.
I don't know if this is a regression brought by the updated Vagrant build system, or if I've just seen it often recently due to the activity peak caused by the doc update for 3.0. Whatever :)
The corresponding code has this explanation:
# Since $TAILS_GIT_DIR is guaranteed persistent until the VM is shutdown # let's build the website while there so it is cached throughout # the session. This will make rebuilds after failures much faster. ./build-website
We don't benefit from it on Jenkins currently AFAIK, and IMO it would be a bad idea to use this cached build there anyway. So, how about we make this step run only if
TAILS_MERGE_BASE_BRANCH is not set? This would fix the problem on Jenkins, while keeping the cache feature for local builds by developers who most likely don't set
mergebasebranch (there's no guarantee that their base branch is up-to-date so the resulting behavior seems too unpredictable to use in practice -- and if anyone used that, I bet they would have reported this bug earlier ;)
Build system: don't pre-build the wiki when mergebasebranch is enabled.
When pre-building the wiki, we modify the PO files which results in a
conflict from the base branch merge in case it modifies the same
#3 Updated by anonym over 2 years ago
- Status changed from Confirmed to In Progress
- Assignee changed from anonym to intrigeri
- % Done changed from 0 to 40
- QA Check set to Ready for QA
- Feature Branch set to bugfix/12611-mergebasebranch-dont-pre-build-wiki
I figured it would be fastest if I just implemented it, so we avoid another trip. It's not tested, but should be safe to deploy. I mean, it shouldn't make things worse unless there is a syntax error.
#5 Updated by anonym over 2 years ago
And the log shows that the wiki wasn't pre-built.