fix(deps): preserve mixed-case materialization paths #2717
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy Docs | |
| on: | |
| # Deploy docs only when a new APM version is released, so the published | |
| # site always matches the latest released binary (see microsoft/apm#641). | |
| # Primary entrypoint is workflow_call from the CI/CD Pipeline release job | |
| # (release: published does not fire when the release is created by | |
| # GITHUB_TOKEN -- a documented Actions safeguard against recursion). | |
| # The release: published trigger is kept as a safety net for human-cut | |
| # releases. PR runs build (no deploy) to catch breakage before merge. | |
| # Manual workflow_dispatch is supported for re-publishing the current docs. | |
| workflow_call: | |
| inputs: | |
| is_prerelease: | |
| description: 'Skip deploy when true (build-only). Defaults to false (deploy).' | |
| required: false | |
| type: boolean | |
| default: false | |
| release: | |
| types: [published] | |
| pull_request: | |
| paths: | |
| - 'docs/**' | |
| - 'src/apm_cli/cli.py' | |
| - 'src/apm_cli/commands/**' | |
| - 'scripts/check_cli_docs.py' | |
| - 'tests/unit/test_cli_docs_contract.py' | |
| - 'tests/integration/test_cli_docs_contract.py' | |
| - '.github/workflows/docs.yml' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: "pages-${{ github.ref }}" | |
| cancel-in-progress: false | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| cache-dependency-path: 'docs/package-lock.json' | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: Install Python test dependencies | |
| run: uv sync --frozen --extra dev | |
| - name: Install dependencies | |
| working-directory: ./docs | |
| run: npm ci | |
| - name: Test generated-link checker | |
| working-directory: ./docs | |
| run: npm run test:links | |
| - name: Test CLI registry contract | |
| run: >- | |
| uv run --frozen pytest | |
| tests/unit/test_cli_docs_contract.py | |
| tests/integration/test_cli_docs_contract.py | |
| -q | |
| - name: Build documentation | |
| working-directory: ./docs | |
| run: npm run build | |
| - name: Check CLI registry against rendered pages | |
| run: uv run --frozen python scripts/check_cli_docs.py docs/dist | |
| - name: Verify schema $id reachability | |
| # Asserts every JSON Schema's declared $id URL resolves to a | |
| # byte-identical file in the build output. Without this, a | |
| # schema move or $id typo would silently break every toolchain | |
| # that pinned to the canonical URL. Uses python3 stdlib only. | |
| run: python3 scripts/check_schema_ids.py | |
| - name: Upload build artifacts | |
| # NOTE: in a reusable workflow, github.event_name reflects the CALLER's | |
| # event (here: 'push' of a v* tag from build-release.yml), NOT | |
| # 'workflow_call'. Detect the workflow_call invocation via the tag-push | |
| # context instead. PR runs (event_name == 'pull_request') correctly | |
| # build-only because none of the three branches match. | |
| if: | | |
| github.event_name == 'workflow_dispatch' || | |
| (github.event_name == 'release' && github.event.release.prerelease == false) || | |
| (github.event_name == 'push' && github.ref_type == 'tag' && inputs.is_prerelease == false) | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: docs/dist | |
| deploy: | |
| needs: build | |
| # Only stable releases (or manual dispatch) update the public docs site, | |
| # so prerelease tags (vX.Y.Z-rc1, etc.) don't clobber published docs. | |
| # NOTE: in a reusable workflow, github.event_name reflects the CALLER's | |
| # event ('push' of a v* tag from build-release.yml), NOT 'workflow_call'. | |
| if: | | |
| github.event_name == 'workflow_dispatch' || | |
| (github.event_name == 'release' && github.event.release.prerelease == false) || | |
| (github.event_name == 'push' && github.ref_type == 'tag' && inputs.is_prerelease == false) | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pages: write | |
| id-token: write | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |