Skip to content

feat: migrated to changesets from lerna #11975

feat: migrated to changesets from lerna

feat: migrated to changesets from lerna #11975

Workflow file for this run

name: Performance check
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
comment-previews:
name: Create preview URLs and comment
# The job will only run if the pull request is from the same repository.
# Benchmarks can't run on PRs from forked repos due to comment posting restrictions without a GitHub token.
if: github.event.pull_request == null || github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v4
with:
ref: main
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Job and Install Dependencies
uses: ./.github/actions/setup-job
- name: Post Previews Comment
uses: actions/github-script@v7
with:
script: |
const { buildPreviewURLComment } = await import('${{ github.workspace }}/tasks/build-preview-urls-comment.js');
const body = buildPreviewURLComment(process.env.GITHUB_HEAD_REF);
const { commentOrUpdate } = await import('${{ github.workspace }}/tasks/comment-or-update.js');
commentOrUpdate(github, context, '## Branch preview', body);
lighthouse:
name: Lighthouse CI
runs-on: ubuntu-22.04
needs: comment-previews
steps:
- name: Checkout main
uses: actions/checkout@v4
with:
ref: main
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Job and Install Dependencies
uses: ./.github/actions/setup-job
- name: Extract branch name
shell: bash
run: echo "branch=$(npx slugify-cli ${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}})" >> $GITHUB_OUTPUT
id: extract_branch
- name: Run Lighthouse CI
id: lighthouse
uses: treosh/lighthouse-ci-action@v11
with:
budgetPath: '.github/lighthouse/budgets.json'
configPath: '.github/lighthouse/lighthouserc.json'
runs: 3
temporaryPublicStorage: true
uploadArtifacts: true
urls: |
https://opensource.adobe.com/spectrum-web-components/
https://main--spectrum-web-components.netlify.app/
https://${{ steps.extract_branch.outputs.branch }}--spectrum-web-components.netlify.app/
- name: Post Lighthouse Results Comment
uses: actions/github-script@v7
with:
script: |
const { buildLighthouseComment } = await import('${{ github.workspace }}/tasks/build-lighthouse-comment.js');
const body = buildLighthouseComment(${{ steps.lighthouse.outputs.links }}, ${{ steps.lighthouse.outputs.manifest }}, ${{ steps.lighthouse.outputs.assertionResults }});
const { commentOrUpdate } = await import('${{ github.workspace }}/tasks/comment-or-update.js');
commentOrUpdate(github, context, '## Lighthouse scores', body);
compare-firefox:
name: Compare performance to latest release on Firefox
# The job will only run if the pull request is from the same repository.
# Benchmarks can't run on PRs from forked repos due to comment posting restrictions without a GitHub token.
if: github.event.pull_request == null || github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-22.04
steps:
- name: Checkout main
uses: actions/checkout@v4
with:
ref: main
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Job and Install Dependencies
uses: ./.github/actions/setup-job
- name: Print Firefox version
run: firefox --version
- name: Tachometer the changed packages
run: yarn test:changed --browser=firefox
- name: Create a dummy file to ensure at least one results file exists
run: touch tachometer.firefox-ran.txt
- name: Archive Firefox tachometer results
uses: actions/upload-artifact@v4
with:
name: tachometer-results-firefox
path: |
tach-results.firefox.*.json
tachometer.firefox-ran.txt
compare-chrome:
name: Compare performance to latest release on Chrome
# The job will only run if the pull request is from the same repository.
# Benchmarks can't run on PRs from forked repos due to comment posting restrictions without a GitHub token.
if: github.event.pull_request == null || github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v4
with:
ref: main
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Job and Install Dependencies
uses: ./.github/actions/setup-job
- name: Tachometer the changed packages
run: yarn test:changed
- name: Create a dummy file to ensure at least one results file exists
run: touch tachometer.chrome-ran.txt
- name: Archive Chrome tachometer results
uses: actions/upload-artifact@v4
with:
name: tachometer-results-chrome
path: |
tach-results.*.json
tachometer.chrome-ran.txt
comment-performance:
name: Comment tachometer performance results
needs: [compare-chrome, compare-firefox]
# The job will only run if the pull request is from the same repository.
# Benchmarks can't run on PRs from forked repos due to comment posting restrictions without a GitHub token.
if: github.event.pull_request == null || github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v4
with:
ref: main
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Job and Install Dependencies
uses: ./.github/actions/setup-job
- name: Retrieve tachometer results archives
uses: actions/download-artifact@v4
with:
name: tachometer-results-firefox
- name: Retrieve tachometer results archives
uses: actions/download-artifact@v4
with:
name: tachometer-results-chrome
- name: Post Tachometer Performance Comment
uses: actions/github-script@v7
with:
script: |
const { buildTachometerComment } = await import('${{ github.workspace }}/tasks/build-tachometer-comment.js');
const body = buildTachometerComment();
const { commentOrUpdate } = await import('${{ github.workspace }}/tasks/comment-or-update.js');
commentOrUpdate(github, context, '## Tachometer results', body);