diff --git a/.github/workflows/docc.yml b/.github/workflows/docc.yml index 58ee986..983aa5c 100644 --- a/.github/workflows/docc.yml +++ b/.github/workflows/docc.yml @@ -15,6 +15,9 @@ concurrency: group: docc-pages cancel-in-progress: true +env: + DOCC_HOSTING_BASE_PATH: NavigationSplitView + jobs: build: name: Build DocC archive @@ -24,8 +27,10 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Select Xcode 16.1 Developer Directory - run: sudo xcode-select -s /Applications/Xcode_16.1.app/Contents/Developer + - name: Select Xcode 16.1 + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: "16.1" - name: Show Xcode version run: xcodebuild -version @@ -33,6 +38,8 @@ jobs: - name: Build documentation archive run: | set -eo pipefail + # Clean up any previous build artifacts + rm -rf DocsArchive DocsBuild mkdir -p DocsArchive xcrun docc convert XcodeProject/NewNav/Documentation.docc \ --fallback-display-name "NavigationSplitView" \ @@ -45,9 +52,13 @@ jobs: run: | set -eo pipefail xcrun docc process-archive transform-for-static-hosting DocsArchive/NavigationSplitView.doccarchive \ - --hosting-base-path /NavigationSplitView \ + --hosting-base-path "$DOCC_HOSTING_BASE_PATH" \ --output-path DocsBuild + # Fix the baseURL in generated HTML + # DocC's --hosting-base-path doesn't always set baseURL correctly, so we fix it manually + sed -i '' "s|\"baseURL\": \"/\"|\"baseURL\": \"/$DOCC_HOSTING_BASE_PATH/\"|g" DocsBuild/index.html + - name: Upload documentation artifact if: github.event_name == 'push' uses: actions/upload-pages-artifact@v3