Compare commits
2 Commits
3bb6782d95
...
f73b7822a5
| Author | SHA1 | Date | |
|---|---|---|---|
|
f73b7822a5
|
|||
| c094cc29ea |
@@ -22,18 +22,60 @@ steps:
|
|||||||
- pnpm run lint
|
- pnpm run lint
|
||||||
- pnpm run lint:css
|
- pnpm run lint:css
|
||||||
|
|
||||||
|
- name: Send Lint Status Notification (failure)
|
||||||
|
image: curlimages/curl
|
||||||
|
environment:
|
||||||
|
MATTERMOST_WEBHOOK_URL:
|
||||||
|
from_secret: mattermost_test_webhook
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Lint failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
|
depends_on:
|
||||||
|
- lint
|
||||||
|
when:
|
||||||
|
- status: [failure]
|
||||||
|
|
||||||
- name: build
|
- name: build
|
||||||
image: node:20-alpine
|
image: node:20-alpine
|
||||||
commands:
|
commands:
|
||||||
- corepack enable && corepack prepare pnpm@10.28.2 --activate
|
- corepack enable && corepack prepare pnpm@10.28.2 --activate
|
||||||
- pnpm run build
|
- pnpm run build
|
||||||
|
|
||||||
- name: test
|
- name: Send Test Build Status Notification (failure)
|
||||||
|
image: curlimages/curl
|
||||||
|
environment:
|
||||||
|
MATTERMOST_WEBHOOK_URL:
|
||||||
|
from_secret: mattermost_test_webhook
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Test build failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
|
depends_on:
|
||||||
|
- build
|
||||||
|
when:
|
||||||
|
- status: [failure]
|
||||||
|
|
||||||
|
- name: unit test
|
||||||
image: node:20-alpine
|
image: node:20-alpine
|
||||||
commands:
|
commands:
|
||||||
- corepack enable && corepack prepare pnpm@10.28.2 --activate
|
- corepack enable && corepack prepare pnpm@10.28.2 --activate
|
||||||
- pnpm test
|
- pnpm test
|
||||||
|
|
||||||
|
- name: Send Unit Test Status Notification (failure)
|
||||||
|
image: curlimages/curl
|
||||||
|
environment:
|
||||||
|
MATTERMOST_WEBHOOK_URL:
|
||||||
|
from_secret: mattermost_test_webhook
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Unit test failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
|
depends_on:
|
||||||
|
- unit test
|
||||||
|
when:
|
||||||
|
- status: [failure]
|
||||||
|
|
||||||
- name: test e2e
|
- name: test e2e
|
||||||
image: mcr.microsoft.com/playwright:v1.58.0-noble
|
image: mcr.microsoft.com/playwright:v1.58.0-noble
|
||||||
commands:
|
commands:
|
||||||
@@ -43,3 +85,35 @@ steps:
|
|||||||
- npx serve dist -p 4173 &
|
- npx serve dist -p 4173 &
|
||||||
- sleep 2
|
- sleep 2
|
||||||
- CI=1 pnpm run test:e2e
|
- CI=1 pnpm run test:e2e
|
||||||
|
|
||||||
|
- name: Send E2E Test Status Notification (failure)
|
||||||
|
image: curlimages/curl
|
||||||
|
environment:
|
||||||
|
MATTERMOST_WEBHOOK_URL:
|
||||||
|
from_secret: mattermost_test_webhook
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] E2E test failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
|
depends_on:
|
||||||
|
- e2e test
|
||||||
|
when:
|
||||||
|
- status: [failure]
|
||||||
|
|
||||||
|
- name: Send CI Pipeline Status Notification (success)
|
||||||
|
image: curlimages/curl
|
||||||
|
environment:
|
||||||
|
MATTERMOST_WEBHOOK_URL:
|
||||||
|
from_secret: mattermost_test_webhook
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] CI pipeline success 🎉"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
|
depends_on:
|
||||||
|
- 'install'
|
||||||
|
- 'lint'
|
||||||
|
- 'build'
|
||||||
|
- 'unit test'
|
||||||
|
- 'e2e test'
|
||||||
|
when:
|
||||||
|
- status: [success]
|
||||||
|
|||||||
@@ -35,12 +35,12 @@ steps:
|
|||||||
- name: Send Build Status Notification (success)
|
- name: Send Build Status Notification (success)
|
||||||
image: curlimages/curl
|
image: curlimages/curl
|
||||||
environment:
|
environment:
|
||||||
DISCORD_WEBHOOK_URL:
|
MATTERMOST_WEBHOOK_URL:
|
||||||
from_secret: discord_webhook_url
|
from_secret: mattermost_deploy_webhook
|
||||||
commands:
|
commands:
|
||||||
- |
|
- |
|
||||||
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Build success 🎉"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Build success 🎉"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$DISCORD_WEBHOOK_URL"
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
depends_on:
|
depends_on:
|
||||||
- 'Docker image build'
|
- 'Docker image build'
|
||||||
when:
|
when:
|
||||||
@@ -49,12 +49,12 @@ steps:
|
|||||||
- name: Send Build Status Notification (failure)
|
- name: Send Build Status Notification (failure)
|
||||||
image: curlimages/curl
|
image: curlimages/curl
|
||||||
environment:
|
environment:
|
||||||
DISCORD_WEBHOOK_URL:
|
MATTERMOST_WEBHOOK_URL:
|
||||||
from_secret: discord_webhook_url
|
from_secret: mattermost_deploy_webhook
|
||||||
commands:
|
commands:
|
||||||
- |
|
- |
|
||||||
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Build failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Build failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$DISCORD_WEBHOOK_URL"
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
depends_on:
|
depends_on:
|
||||||
- Docker image build
|
- Docker image build
|
||||||
when:
|
when:
|
||||||
@@ -90,12 +90,12 @@ steps:
|
|||||||
- name: Send Push Status Notification (success)
|
- name: Send Push Status Notification (success)
|
||||||
image: curlimages/curl
|
image: curlimages/curl
|
||||||
environment:
|
environment:
|
||||||
DISCORD_WEBHOOK_URL:
|
MATTERMOST_WEBHOOK_URL:
|
||||||
from_secret: discord_webhook_url
|
from_secret: mattermost_deploy_webhook
|
||||||
commands:
|
commands:
|
||||||
- |
|
- |
|
||||||
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Push to registry success 🎉"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Push to registry success 🎉"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$DISCORD_WEBHOOK_URL"
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
depends_on:
|
depends_on:
|
||||||
- 'Push to registry'
|
- 'Push to registry'
|
||||||
when:
|
when:
|
||||||
@@ -104,12 +104,12 @@ steps:
|
|||||||
- name: Send Push Status Notification (failure)
|
- name: Send Push Status Notification (failure)
|
||||||
image: curlimages/curl
|
image: curlimages/curl
|
||||||
environment:
|
environment:
|
||||||
DISCORD_WEBHOOK_URL:
|
MATTERMOST_WEBHOOK_URL:
|
||||||
from_secret: discord_webhook_url
|
from_secret: mattermost_deploy_webhook
|
||||||
commands:
|
commands:
|
||||||
- |
|
- |
|
||||||
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Push to registry failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Push to registry failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$DISCORD_WEBHOOK_URL"
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
depends_on:
|
depends_on:
|
||||||
- 'Push to registry'
|
- 'Push to registry'
|
||||||
when:
|
when:
|
||||||
@@ -138,12 +138,12 @@ steps:
|
|||||||
- name: Send Deploy Status Notification (success)
|
- name: Send Deploy Status Notification (success)
|
||||||
image: curlimages/curl
|
image: curlimages/curl
|
||||||
environment:
|
environment:
|
||||||
DISCORD_WEBHOOK_URL:
|
MATTERMOST_WEBHOOK_URL:
|
||||||
from_secret: discord_webhook_url
|
from_secret: mattermost_deploy_webhook
|
||||||
commands:
|
commands:
|
||||||
- |
|
- |
|
||||||
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Production Deploy success 🎉"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Production Deploy success 🎉"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$DISCORD_WEBHOOK_URL"
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
depends_on:
|
depends_on:
|
||||||
- 'Trigger Portainer stack redeploy'
|
- 'Trigger Portainer stack redeploy'
|
||||||
when:
|
when:
|
||||||
@@ -152,12 +152,12 @@ steps:
|
|||||||
- name: Send Deploy Status Notification (failure)
|
- name: Send Deploy Status Notification (failure)
|
||||||
image: curlimages/curl
|
image: curlimages/curl
|
||||||
environment:
|
environment:
|
||||||
DISCORD_WEBHOOK_URL:
|
MATTERMOST_WEBHOOK_URL:
|
||||||
from_secret: discord_webhook_url
|
from_secret: mattermost_deploy_webhook
|
||||||
commands:
|
commands:
|
||||||
- |
|
- |
|
||||||
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Production Deploy failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
BODY=$(printf '{"username":"WoodpeckerBot","content":"[%s - Build #%s] Production Deploy failure 💩"}' "$CI_REPO" "$CI_PIPELINE_NUMBER")
|
||||||
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$DISCORD_WEBHOOK_URL"
|
curl -sS -X POST -H "Content-Type: application/json" -d "$BODY" "$MATTERMOST_WEBHOOK_URL"
|
||||||
depends_on:
|
depends_on:
|
||||||
- Trigger Portainer stack redeploy
|
- Trigger Portainer stack redeploy
|
||||||
when:
|
when:
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ else
|
|||||||
echo "Updating snapshots in the current environment (matches CI when using the devcontainer)."
|
echo "Updating snapshots in the current environment (matches CI when using the devcontainer)."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
pnpm run build
|
||||||
|
|
||||||
# Unset CI so Playwright config starts the preview server
|
# Unset CI so Playwright config starts the preview server
|
||||||
unset CI
|
unset CI
|
||||||
pnpm exec playwright test --update-snapshots
|
pnpm exec playwright test --update-snapshots
|
||||||
|
|||||||
@@ -8,12 +8,10 @@
|
|||||||
aria-labelledby="experience-heading"
|
aria-labelledby="experience-heading"
|
||||||
>
|
>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h2 id="experience-heading" class="section-title">
|
<h2 id="experience-heading" class="section-title">Previously at:</h2>
|
||||||
Experience includes teams at:
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<div class="logo-strip" role="list" aria-label="Company logos">
|
<div class="logo-strip" role="list" aria-label="Company logos">
|
||||||
{#each experienceLogos as logo (logo.alt)}
|
{#each experienceLogos.filter((logo) => logo.showLogo) as logo (logo.alt)}
|
||||||
<div class="logo-item" role="listitem">
|
<div class="logo-item" role="listitem">
|
||||||
<img
|
<img
|
||||||
src={logo.src}
|
src={logo.src}
|
||||||
|
|||||||
@@ -1,25 +1,52 @@
|
|||||||
export const experienceLogos = [
|
export const experienceLogos = [
|
||||||
{ src: '/assets/logos/atlassian.svg', alt: 'Atlassian', width: 2500, height: 2500 },
|
{
|
||||||
|
src: '/assets/logos/atlassian.svg',
|
||||||
|
alt: 'Atlassian',
|
||||||
|
width: 2500,
|
||||||
|
height: 2500,
|
||||||
|
showLogo: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
src: '/assets/logos/tjx.svg',
|
src: '/assets/logos/tjx.svg',
|
||||||
alt: 'TJ Maxx (The TJX Companies)',
|
alt: 'TJ Maxx (The TJX Companies)',
|
||||||
width: 2500,
|
width: 2500,
|
||||||
height: 621,
|
height: 621,
|
||||||
|
showLogo: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/assets/logos/cargurus.svg',
|
||||||
|
alt: 'CarGurus',
|
||||||
|
width: 2500,
|
||||||
|
height: 398,
|
||||||
|
showLogo: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/assets/logos/timberland.svg',
|
||||||
|
alt: 'Timberland',
|
||||||
|
width: 190,
|
||||||
|
height: 35,
|
||||||
|
showLogo: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '/assets/logos/vf.svg',
|
||||||
|
alt: 'VF Corporation',
|
||||||
|
width: 190,
|
||||||
|
height: 155,
|
||||||
|
showLogo: true,
|
||||||
},
|
},
|
||||||
{ src: '/assets/logos/cargurus.svg', alt: 'CarGurus', width: 2500, height: 398 },
|
|
||||||
{ src: '/assets/logos/timberland.svg', alt: 'Timberland', width: 190, height: 35 },
|
|
||||||
{ src: '/assets/logos/vf.svg', alt: 'VF Corporation', width: 190, height: 155 },
|
|
||||||
{
|
{
|
||||||
src: '/assets/logos/bottomline.svg',
|
src: '/assets/logos/bottomline.svg',
|
||||||
alt: 'Bottomline Technologies',
|
alt: 'Bottomline Technologies',
|
||||||
width: 2702,
|
width: 2702,
|
||||||
height: 571,
|
height: 571,
|
||||||
|
showLogo: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: '/assets/logos/mfa-boston.svg',
|
src: '/assets/logos/mfa-boston.svg',
|
||||||
alt: 'Museum of Fine Arts Boston',
|
alt: 'Museum of Fine Arts Boston',
|
||||||
width: 572,
|
width: 572,
|
||||||
height: 88,
|
height: 88,
|
||||||
|
showLogo: true,
|
||||||
},
|
},
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 583 KiB After Width: | Height: | Size: 577 KiB |
Reference in New Issue
Block a user