Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 94 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
with:
fetch-depth: 0
lfs: true
Expand All @@ -34,7 +34,7 @@ jobs:
run: node ./projects/internals/ci/ci-summary.js >> "$GITHUB_STEP_SUMMARY"
- name: Upload build artifacts
if: github.event_name == 'push'
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: build-artifacts
retention-days: 1
Expand Down Expand Up @@ -62,17 +62,34 @@ jobs:
projects/monaco/dist
projects/monaco/package.json
projects/pages/dist
- name: Prepare IndexNow artifacts
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
env:
ELEMENTS_PAGES_BASE_URL: ${{vars.ELEMENTS_PAGES_BASE_URL}}
INDEXNOW_KEY: ${{secrets.INDEXNOW_KEY}}
run: >-
node ./projects/internals/ci/indexnow.js prepare
--site-dir projects/pages/dist
--site-url "$ELEMENTS_PAGES_BASE_URL"
- name: Upload pages artifact
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
uses: actions/upload-pages-artifact@v5
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9
with:
path: projects/pages/dist
include-hidden-files: true
- name: Upload IndexNow state
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: indexnow-state
retention-days: 1
path: projects/pages/dist/indexnow-manifest.json
overwrite: true
Comment thread
coryrylan marked this conversation as resolved.
Comment thread
coderabbitai[bot] marked this conversation as resolved.

lighthouse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
with:
fetch-depth: 0
lfs: true
Expand All @@ -94,7 +111,7 @@ jobs:
contents: write
id-token: write
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
with:
fetch-depth: 0
lfs: true
Expand All @@ -107,7 +124,7 @@ jobs:
with:
install-playwright: 'false'
- name: Download build artifacts
uses: actions/download-artifact@v8
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: build-artifacts
path: projects
Expand All @@ -120,7 +137,7 @@ jobs:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
run: WIREIT_PARALLEL=1 WIREIT_LOGGER=metrics pnpm run release
- name: Upload MCP server manifest
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: mcp-server
retention-days: 1
Expand All @@ -134,7 +151,7 @@ jobs:
concurrency: mcp-registry-publish
steps:
- name: Download MCP server manifest
uses: actions/download-artifact@v8
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: mcp-server
path: projects/cli
Expand Down Expand Up @@ -170,13 +187,81 @@ jobs:
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
pages: write
id-token: write
environment:
name: github-pages
url: ${{steps.deployment.outputs.page_url}}
concurrency: pages
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
with:
sparse-checkout: |
.nvmrc
mise.toml
projects/internals/ci/indexnow.js
sparse-checkout-cone-mode: false
- uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d
with:
version: 2026.6.14
install: true
cache: true
- name: Download IndexNow state
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: indexnow-state
path: indexnow/current
- name: Determine changed URLs
env:
ELEMENTS_PAGES_BASE_URL: ${{vars.ELEMENTS_PAGES_BASE_URL}}
run: >-
node ./projects/internals/ci/indexnow.js diff
--current-file indexnow/current/indexnow-manifest.json
--site-url "$ELEMENTS_PAGES_BASE_URL"
--output-file indexnow/payload.json
- name: Upload IndexNow payload
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: indexnow-payload
retention-days: 30
path: indexnow/payload.json
overwrite: true
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128

notify-indexnow:
needs: deploy-pages
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
with:
sparse-checkout: |
.nvmrc
mise.toml
projects/internals/ci/indexnow.js
sparse-checkout-cone-mode: false
- uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d
with:
version: 2026.6.14
install: true
cache: true
- name: Download IndexNow payload
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: indexnow-payload
path: indexnow
- name: Notify IndexNow
env:
ELEMENTS_PAGES_BASE_URL: ${{vars.ELEMENTS_PAGES_BASE_URL}}
INDEXNOW_KEY: ${{secrets.INDEXNOW_KEY}}
run: >-
node ./projects/internals/ci/indexnow.js submit
--payload-file indexnow/payload.json
--site-url "$ELEMENTS_PAGES_BASE_URL"
Comment thread
coryrylan marked this conversation as resolved.
4 changes: 4 additions & 0 deletions projects/internals/BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,10 @@ The following GitHub settings optimize code quality and stability within the rep

Scheduled workflows run nightly builds of the documentation as well as full runs of [Lighthouse CI](https://github.com/GoogleChrome/lighthouse-ci) against each of the 50+ components in the Elements library.

### IndexNow

The Pages deployment workflow notifies IndexNow after it publishes documentation updates. Before merging changes that enable this workflow, add an `INDEXNOW_KEY` repository Actions secret containing 8 to 128 letters, numbers, or dashes. The workflow publishes the verification file under the Pages project path, submits only changed sitemap URLs, and retains each notification payload for 30 days so maintainers can rerun a failed notification job.

Comment on lines +202 to +205

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Subsection breaks the established bullet-list pattern and omits the IndexNow project link.

Every other item in "## Repo Configuration" is a - [Title](link) bullet with a short description (e.g. GitHub Pages, Scheduled Workflows), but this entry introduces a ### heading instead. The PR description also calls out referencing the IndexNow project at https://www.indexnow.org/, which isn't linked anywhere in this section.

Proposed fix — match sibling bullet format and add the project link
-### IndexNow
-
-The Pages deployment workflow notifies IndexNow after it publishes documentation updates. Before merging changes that enable this workflow, add an `INDEXNOW_KEY` repository Actions secret containing 8 to 128 letters, numbers, or dashes. The workflow publishes the verification file under the Pages project path, submits only changed sitemap URLs, and retains each notification payload for 30 days so maintainers can rerun a failed notification job.
+- [IndexNow](https://www.indexnow.org/)
+
+  The Pages deployment workflow notifies IndexNow after it publishes documentation updates. Before merging changes that enable this workflow, add an `INDEXNOW_KEY` repository Actions secret containing 8 to 128 letters, numbers, or dashes. The workflow publishes the verification file under the Pages project path, submits only changed sitemap URLs, and retains each notification payload for 30 days so maintainers can rerun a failed notification job.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### IndexNow
The Pages deployment workflow notifies IndexNow after it publishes documentation updates. Before merging changes that enable this workflow, add an `INDEXNOW_KEY` repository Actions secret containing 8 to 128 letters, numbers, or dashes. The workflow publishes the verification file under the Pages project path, submits only changed sitemap URLs, and retains each notification payload for 30 days so maintainers can rerun a failed notification job.
- [IndexNow](https://www.indexnow.org/)
The Pages deployment workflow notifies IndexNow after it publishes documentation updates. Before merging changes that enable this workflow, add an `INDEXNOW_KEY` repository Actions secret containing 8 to 128 letters, numbers, or dashes. The workflow publishes the verification file under the Pages project path, submits only changed sitemap URLs, and retains each notification payload for 30 days so maintainers can rerun a failed notification job.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/internals/BUILD.md` around lines 202 - 205, The IndexNow entry in
the Repo Configuration section breaks the existing bullet-list format and misses
the required project reference. Update the documentation item to match sibling
entries like GitHub Pages and Scheduled Workflows by using a bullet with a
linked title, and include the IndexNow project link to https://www.indexnow.org/
in the description or title. Keep the existing workflow/secret details, but make
the entry consistent with the surrounding list structure.

## Release

[Semantic Release](https://github.com/semantic-release/semantic-release) is an open source tool for managing automatic publishing and deployment of libraries and packages following [SEMVER](https://semver.org/). This enables a fix or feature to be available within minutes of it merging and passing the CI automated tests. To integrate into GitHub, complete the following:
Expand Down
Loading