Skip to content

Commit 1f0123a

Browse files
committed
fix(ci): populate frozen version content in preview build and surface fern errors
The preview build workflow did not run git archive to populate fern/versions/v0.3.0-content/, causing fern generate --preview to fail with ENOENT on every PR since #316 merged. Add the same git archive step from the publish workflow. Also switch the comment workflow's Generate preview URL step from the OUTPUT=$(fern ... 2>&1) pattern to tee-based streaming so fern errors are visible in the Actions log on failure. Fixes #321 Signed-off-by: Pete MacKinnon <pmackinnon@nvidia.com>
1 parent 9f1f8a6 commit 1f0123a

2 files changed

Lines changed: 24 additions & 3 deletions

File tree

.github/workflows/fern-docs-preview-build.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,27 @@ jobs:
6060
echo "$BRANCH_NAME" > preview-metadata/head_ref
6161
git diff --name-only "origin/main...HEAD" -- '*.md' > preview-metadata/changed_md_files 2>/dev/null || true
6262
63+
- name: Checkout frozen version content
64+
run: |
65+
set -eo pipefail
66+
for version_file in fern/versions/v*.yml; do
67+
[ -f "$version_file" ] || continue
68+
version=$(basename "$version_file" .yml)
69+
if git rev-parse "$version" >/dev/null 2>&1; then
70+
mkdir -p "fern/versions/${version}-content"
71+
git archive "$version" -- docs/ | tar -x --strip-components=1 -C "fern/versions/${version}-content"
72+
find "fern/versions/${version}-content" -name '*.md' -exec sed -i 's/<img \([^>]*[^/]\)>/<img \1 \/>/g' {} +
73+
for subdir in "fern/versions/${version}-content"/*/; do
74+
if [ ! -d "${subdir}assets" ] && [ -d "fern/versions/${version}-content/assets" ]; then
75+
ln -sf ../assets "${subdir}assets"
76+
fi
77+
done
78+
echo "Extracted docs from $version"
79+
else
80+
echo "::warning::Tag $version not found — skipping content checkout"
81+
fi
82+
done
83+
6384
- name: Upload fern sources and metadata
6485
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
6586
with:

.github/workflows/fern-docs-preview-comment.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ jobs:
6767
HEAD_REF: ${{ steps.metadata.outputs.head_ref }}
6868
working-directory: ./fern
6969
run: |
70-
OUTPUT=$(fern generate --docs --preview --id "$HEAD_REF" 2>&1)
71-
echo "$OUTPUT"
72-
URL=$(echo "$OUTPUT" | grep -oP 'Published docs to \K.*(?= \()')
70+
set -o pipefail
71+
fern generate --docs --preview --id "$HEAD_REF" 2>&1 | tee /tmp/fern-output.log
72+
URL=$(grep -oP 'Published docs to \K.*(?= \()' /tmp/fern-output.log || true)
7373
if [ -z "$URL" ]; then
7474
echo "::error::Failed to generate preview URL. See fern output above."
7575
exit 1

0 commit comments

Comments
 (0)