Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add landing page and upload vrt/aat reports to GitHub Pages #5499

Merged
merged 58 commits into from
Jan 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
c80ac17
Add preview page
hussam-i-am Jan 6, 2025
a6878ff
Fix copy
hussam-i-am Jan 6, 2025
4680b7f
Fix copy
hussam-i-am Jan 6, 2025
d6d1dcc
Update location
hussam-i-am Jan 6, 2025
cb9c650
Remove if statement
hussam-i-am Jan 6, 2025
d021ff3
Add 404 page
hussam-i-am Jan 6, 2025
88458d1
Simple styling
hussam-i-am Jan 6, 2025
14da295
create separate workflow files
hussam-i-am Jan 7, 2025
d23b6f3
format fix
hussam-i-am Jan 7, 2025
1eeaea7
Download artifacts
hussam-i-am Jan 7, 2025
f94543a
format fix
hussam-i-am Jan 7, 2025
162d8d4
disable pull-requet
hussam-i-am Jan 7, 2025
e6717aa
use workflow_call
hussam-i-am Jan 7, 2025
c83778c
update concurrency group
hussam-i-am Jan 7, 2025
a37676a
update paths
hussam-i-am Jan 7, 2025
dc43e5d
rework workflow
hussam-i-am Jan 7, 2025
bfff220
add conditional
hussam-i-am Jan 7, 2025
a5b01b4
Merge branch 'main' of https://github.com/primer/react into hussam-i-…
hussam-i-am Jan 7, 2025
a7e41ff
update version
hussam-i-am Jan 7, 2025
a708934
update artifact name
hussam-i-am Jan 7, 2025
3d08d7d
Merge branch 'main' into hussam-i-am/preview-page
hussam-i-am Jan 7, 2025
1b07d6e
test vrt fail
hussam-i-am Jan 7, 2025
a1d4219
Merge branch 'hussam-i-am/preview-page' of https://github.com/primer/…
hussam-i-am Jan 7, 2025
d1ecd46
test vrt fail
hussam-i-am Jan 7, 2025
e3ea470
continue on error
hussam-i-am Jan 8, 2025
d799e78
skip download if failed
hussam-i-am Jan 8, 2025
0193494
revert css change
hussam-i-am Jan 8, 2025
2aac527
add always
hussam-i-am Jan 8, 2025
20b2de0
add always
hussam-i-am Jan 8, 2025
3f5ea17
simple styling
hussam-i-am Jan 8, 2025
d29843f
add deployments
hussam-i-am Jan 8, 2025
2fa3e98
update env names
hussam-i-am Jan 8, 2025
68a4fbe
Merge branch 'main' into hussam-i-am/preview-page
hussam-i-am Jan 8, 2025
75fb124
format fix
hussam-i-am Jan 8, 2025
6360b93
Merge branch 'hussam-i-am/preview-page' of https://github.com/primer/…
hussam-i-am Jan 8, 2025
c481053
reset state
hussam-i-am Jan 8, 2025
1ad7e8e
force vrt fail
hussam-i-am Jan 9, 2025
afbdd0c
Merge branch 'main' into hussam-i-am/preview-page
hussam-i-am Jan 9, 2025
e9da6cd
fix css
hussam-i-am Jan 9, 2025
d9c0e72
Merge branch 'hussam-i-am/preview-page' of https://github.com/primer/…
hussam-i-am Jan 9, 2025
992d712
Merge branch 'main' into hussam-i-am/preview-page
hussam-i-am Jan 9, 2025
b454071
disable deployments
hussam-i-am Jan 9, 2025
7a139aa
vrt fail
hussam-i-am Jan 9, 2025
0002515
remove if statements
hussam-i-am Jan 9, 2025
0afa219
fix css
hussam-i-am Jan 9, 2025
e9f161d
try readding deployment
hussam-i-am Jan 9, 2025
4a00c26
reenable all deployments
hussam-i-am Jan 9, 2025
5057377
Failed vrt
hussam-i-am Jan 9, 2025
f0c5679
revert failed vrt
hussam-i-am Jan 9, 2025
e624f26
update fork
hussam-i-am Jan 9, 2025
934ec19
Merge branch 'main' into hussam-i-am/preview-page
hussam-i-am Jan 9, 2025
880a3d2
try workflow_run
hussam-i-am Jan 10, 2025
4997082
Merge branch 'hussam-i-am/preview-page' of https://github.com/primer/…
hussam-i-am Jan 10, 2025
59d0e30
format fix
hussam-i-am Jan 10, 2025
97ae03e
trigger workflow
hussam-i-am Jan 10, 2025
58fc37a
fix format
hussam-i-am Jan 10, 2025
69cd17d
add branch
hussam-i-am Jan 10, 2025
cc826c1
remove quotes
hussam-i-am Jan 10, 2025
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
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Copy link
Member

Choose a reason for hiding this comment

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

Just thinking out loud, would it be possible for the required jobs to stay in the ci workflow and then have deploy_preview's trigger be workflow_run? Then we could use that deploy_preview workflow to download artifacts from the CI workflow that we would like to host/deploy.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I can give that a try. I think I was initially trying to avoid deploy_preview from waiting for ci and parallelize the reports running to run but it probably won't have a significant impact of time. Also it would minimize the changes being made at this point.

Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ jobs:
path: playwright-report
- name: check vrt-runner job status
if: ${{ needs.vrt-runner.result == 'failure' }}
continue-on-error: true
run: exit 1

vrt-runner-all-flags:
Expand Down Expand Up @@ -246,6 +247,7 @@ jobs:
path: playwright-report
- name: check vrt-runner-all-flags job status
if: ${{ needs.vrt-runner-all-flags.result == 'failure' }}
continue-on-error: true
run: exit 1

aat-runner:
Expand Down Expand Up @@ -318,6 +320,7 @@ jobs:
path: playwright-report
- name: Check aat-runner job status
if: ${{ needs.aat-runner.result == 'failure' }}
continue-on-error: true
run: exit 1

aat-runner-all-flags:
Expand Down Expand Up @@ -394,6 +397,7 @@ jobs:
path: playwright-report
- name: Check aat-runner-all-flags job status
if: ${{ needs.aat-runner-all-flags.result == 'failure' }}
continue-on-error: true
run: exit 1

build-components-json:
Expand Down
164 changes: 157 additions & 7 deletions .github/workflows/deploy_preview.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
name: Deploy Preview
on:
pull_request:
workflow_run:
branches:
- main
workflows: [CI]
types:
- completed

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
if: ${{ github.event.pull_request.head.repo.full_name == 'primer/react' }}
if: ${{ always() && github.event.workflow_run.event.pull_request.head.repo.full_name == 'primer/react' }}
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -22,13 +28,33 @@ jobs:
run: npm ci
- name: Build docs preview
run: npm run build:docs:preview
- name: Download VRT reports (All flags enabled)
uses: actions/download-artifact@v4
with:
name: vrt-all-flags
path: docs/public/vrt-all-flags
- name: Download VRT reports (No flags enabled)
uses: actions/download-artifact@v4
with:
name: vrt-no-flag
path: docs/public/vrt-no-flag
- name: Download AAT reports (All flags enabled)
uses: actions/download-artifact@v4
with:
name: axe-all-flags
path: docs/public/aat-all-flags
- name: Download AAT reports (No flags enabled)
uses: actions/download-artifact@v4
with:
name: axe
path: docs/public/aat-no-flag
Comment on lines +31 to +50
Copy link
Member

Choose a reason for hiding this comment

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

For actions/download-artifact, would we need to pass along run-id to these in order to download from the CI workflow? My assumption is that these try to download from the current workflow but let me know if that's incorrect

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That was also my assumption and they seem to be updating correctly on each run

- uses: actions/upload-pages-artifact@v3
with:
name: github-pages
path: docs/public

deploy-preview:
if: ${{ github.event.pull_request.head.repo.full_name == 'primer/react' }}
if: ${{ always() && github.event.workflow_run.event.pull_request.head.repo.full_name == 'primer/react' }}
needs: build
permissions:
pages: write
Expand All @@ -48,7 +74,7 @@ jobs:

deploy-storybook:
name: Preview Storybook
if: ${{ github.event.pull_request.head.repo.full_name == 'primer/react' }}
if: ${{ always() && github.event.workflow_run.event.pull_request.head.repo.full_name == 'primer/react' }}
needs: deploy-preview
permissions:
deployments: write
Expand All @@ -59,14 +85,14 @@ jobs:
id: storybook
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment: storybook-preview-${{ github.event.number }}
environment_url: '${{ needs.deploy-preview.outputs.deployment_url }}/storybook'
environment: storybook-preview-${{ github.event.workflow_run.event.number }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}storybook'
- name: Update storybook deployment status (success)
if: success()
uses: chrnorm/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}/storybook'
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}storybook'
state: 'success'
deployment-id: ${{ steps.storybook.outputs.deployment_id }}
- name: Update storybook deployment status (failure)
Expand All @@ -76,3 +102,127 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
state: 'failure'
deployment-id: ${{ steps.storybook.outputs.deployment_id }}

deploy-vrt-no-flag:
name: VRT (No flags enabled)
if: ${{ always() && github.event.workflow_run.event.pull_request.head.repo.full_name == 'primer/react' }}
needs: [deploy-preview]
permissions:
deployments: write
runs-on: ubuntu-latest
steps:
- uses: chrnorm/[email protected]
name: Create GitHub deployment for vrt-no-flag
id: vrt-no-flag
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment: vrt-no-flag-${{ github.event.workflow_run.event.number }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}vrt-no-flag'
- name: Update vrt-no-flag deployment status (success)
if: success()
uses: chrnorm/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}vrt-no-flag'
state: 'success'
deployment-id: ${{ steps.vrt-no-flag.outputs.deployment_id }}
- name: Update vrt-no-flag deployment status (failure)
if: failure()
uses: chrnorm/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
state: 'failure'
deployment-id: ${{ steps.vrt-no-flag.outputs.deployment_id }}

deploy-vrt-all-flags:
name: VRT (All flags enabled)
if: ${{ always() && github.event.workflow_run.event.pull_request.head.repo.full_name == 'primer/react' }}
needs: deploy-preview
permissions:
deployments: write
runs-on: ubuntu-latest
steps:
- uses: chrnorm/[email protected]
name: Create GitHub deployment for vrt-all-flags
id: vrt-all-flags
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment: vrt-all-flags-${{ github.event.workflow_run.event.number }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}vrt-all-flags'
- name: Update vrt-all-flags deployment status (success)
if: success()
uses: chrnorm/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}vrt-all-flags'
state: 'success'
deployment-id: ${{ steps.vrt-all-flags.outputs.deployment_id }}
- name: Update vrt-all-flags deployment status (failure)
if: failure()
uses: chrnorm/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
state: 'failure'
deployment-id: ${{ steps.vrt-all-flags.outputs.deployment_id }}

deploy-aat-no-flag:
name: AAT (No flags enabled)
if: ${{ always() && github.event.workflow_run.event.pull_request.head.repo.full_name == 'primer/react' }}
needs: deploy-preview
permissions:
deployments: write
runs-on: ubuntu-latest
steps:
- uses: chrnorm/[email protected]
name: Create GitHub deployment for aat-no-flag
id: aat-no-flag
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment: aat-no-flag-${{ github.event.workflow_run.event.number }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}aat-no-flag'
- name: Update aat-no-flag deployment status (success)
if: success()
uses: chrnorm/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}aat-no-flag'
state: 'success'
deployment-id: ${{ steps.aat-no-flag.outputs.deployment_id }}
- name: Update aat-no-flag deployment status (failure)
if: failure()
uses: chrnorm/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
state: 'failure'
deployment-id: ${{ steps.aat-no-flag.outputs.deployment_id }}

deploy-aat-all-flags:
name: AAT (All flags enabled)
if: ${{ always() && github.event.workflow_run.event.pull_request.head.repo.full_name == 'primer/react' }}
needs: deploy-preview
permissions:
deployments: write
runs-on: ubuntu-latest
steps:
- uses: chrnorm/[email protected]
name: Create GitHub deployment for aat-all-flags
id: aat-all-flags
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment: aat-all-flags-${{ github.event.workflow_run.event.number }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}aat-all-flags'
- name: Update aat-all-flags deployment status (success)
if: success()
uses: chrnorm/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
environment-url: '${{ needs.deploy-preview.outputs.deployment_url }}aat-all-flags'
state: 'success'
deployment-id: ${{ steps.aat-all-flags.outputs.deployment_id }}
- name: Update aat-all-flags deployment status (failure)
if: failure()
uses: chrnorm/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
state: 'failure'
deployment-id: ${{ steps.aat-all-flags.outputs.deployment_id }}
25 changes: 25 additions & 0 deletions packages/react/.storybook/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Primer Preview Page</title>
<link href="https://unpkg.com/@primer/css@^20.2.4/dist/primer.css" rel="stylesheet" />
</head>
<body class="p-3">
<div class="Header">
<h1>Primer Preview Page</h1>
</div>
<div class="p-2 m-2 d-flex flex-column">
<ul class="filter-list">
<li><a class="filter-item" href="./storybook" class="btn-link mb-2">Storybook</a></li>
<li><a class="filter-item" href="./vrt-no-flag" class="btn-link mb-2">Visual Regression Testing</a></li>
<li><a class="filter-item" href="./vrt-all-flags" class="btn-link mb-2">Visual Regression Testing (All Flags
Enabled)</a></li>
<li><a class="filter-item" href="./aat-no-flag" class="btn-link mb-2">Automated Accessibility Testing</a></li>
<li><a class="filter-item" href="./aat-all-flags" class="btn-link mb-2">Automated Accessibility Testing (All Flags
Enabled)</a></li>
</ul>
</div>
</body>
</html>
4 changes: 4 additions & 0 deletions script/build-storybook
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,9 @@ fi
# Build storybook inside docs
npx storybook build -o ../../docs/public/storybook

# Move index page to the right location
cp .storybook/index.html ../../docs/public/index.html

# Remove manager-head after build to not interfere with dev builds
rm .storybook/manager-head.html
rm .storybook/index.html
Loading