Browse Source

do full sync when Antora reverts to running a full build (#12263)

Dan Allen 2 years ago
parent
commit
35bdfa87a0

+ 4 - 0
.github/actions/publish-docs.sh

@@ -19,6 +19,10 @@ fi
   echo "$SSH_PRIVATE_KEY" > "$SSH_PRIVATE_KEY_PATH"
   echo "$SSH_KNOWN_HOST" > ~/.ssh/known_hosts
   RSYNC_OPTS='-avz --delete'
+  if [ -f .full-build ]; then
+    unlink .full-build
+    BUILD_REFNAME=
+  fi
   if [ -n "$BUILD_REFNAME" ]; then
     RSYNC_OPTS="-c $RSYNC_OPTS$(find $FROM -mindepth 1 -maxdepth 1 \! -name 404.html \! -name '.*' -type f -printf ' --include /%P')"
     RSYNC_OPTS="$RSYNC_OPTS$(find $FROM -mindepth 1 -maxdepth 1 -type d \! -name _ -printf ' --include /%P --include /%P/**') --exclude **"

+ 4 - 2
lib/antora/extensions/autoconfig-partial-build.js

@@ -1,7 +1,8 @@
 'use strict'
 
 const execFile = require('node:util').promisify(require('node:child_process').execFile)
-const { promises: fsp } = require('node:fs')
+const fsp = require('node:fs/promises')
+const ospath = require('node:path')
 
 module.exports.register = function () {
   if (!process.env.BUILD_REFNAME) return
@@ -26,7 +27,8 @@ module.exports.register = function () {
     const versionsInManifest = siteManifestData.components.ROOT.versions
     if (!(version in versionsInManifest && isBranch === !!versionsInManifest[version].prerelease)) {
       const category = require('path').basename(module.id, '.js')
-      this.getLogger(category).info(`version ${version} not previously built; reverting to full build`)
+      await fsp.writeFile(ospath.join(playbook.dir, '.full-build'), '')
+      console.log(`version ${version} not previously built; reverting to full build`)
       return
     }
     Object.assign(