Compare commits

45 Commits

Author SHA1 Message Date
83c27ba1bf Merge pull request 'mars rover and embryo pick and plate content' (#19) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 6m31s
Build and Test - Production / build_and_push (push) Successful in 5m27s
Build and Test - Production / deploy_production (push) Successful in 2s
Reviewed-on: #19
2025-12-18 04:24:01 +00:00
6ff2249955 Added won 1st to mars rover
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 6m36s
Build and Test - Staging / build_and_push (pull_request) Successful in 5m14s
Build and Test - Staging / deploy_staging (pull_request) Successful in 2s
2025-12-17 20:23:44 -08:00
ec6cfba9ba Content for mars rover software lead and embryo pick and plate, small padding tweak to printed circuit board notes
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 6m24s
Build and Test - Staging / build_and_push (pull_request) Successful in 5m23s
Build and Test - Staging / deploy_staging (pull_request) Successful in 2s
2025-12-17 20:05:12 -08:00
22b6a06b32 Added media for embryo pick and plate, including pcbs, made tweaks to pcb astro component for title and description, new H4 component, enabled zebrafish pnp and mars rover software team pages 2025-12-17 17:37:44 -08:00
090bc11ed0 Merge pull request 'Component for PCBs, many visual tweaks, finished dechorionator content, added many many photos, started work on mars rover software lead, timeline to luxon and automatic date-based ordering' (#18) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 5m12s
Build and Test - Production / build_and_push (push) Successful in 4m24s
Build and Test - Production / deploy_production (push) Successful in 2s
Reviewed-on: #18
2025-12-13 07:23:40 +00:00
dac9e80efd Fix unit tests for placeholder site-layout entries
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 5m26s
Build and Test - Staging / build_and_push (pull_request) Successful in 4m16s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-12 23:05:47 -08:00
8fd744118f Component for PCBs, many visual tweaks, finished dechorionator content, added many many photos, started work on mars rover software lead, timeline to luxon and automatic date-based ordering
Some checks failed
Build and Test - Staging / test (pull_request) Failing after 4m56s
Build and Test - Staging / build_and_push (pull_request) Has been skipped
Build and Test - Staging / deploy_staging (pull_request) Has been skipped
2025-12-12 22:48:03 -08:00
3be602c6cf Merge pull request 'Added core content for hardware test engineer page' (#17) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 4m43s
Build and Test - Production / build_and_push (push) Successful in 3m21s
Build and Test - Production / deploy_production (push) Successful in 3s
Reviewed-on: #17
2025-12-12 04:59:14 +00:00
adcbce68c8 Fix site layout formatting
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m16s
Build and Test - Staging / build_and_push (pull_request) Successful in 3m22s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-11 17:18:09 -08:00
33fbbe96b3 Temporarily disable mars rover software lead for deploy
Some checks failed
Build and Test - Staging / test (pull_request) Failing after 1m56s
Build and Test - Staging / build_and_push (pull_request) Has been skipped
Build and Test - Staging / deploy_staging (pull_request) Has been skipped
2025-12-11 17:11:51 -08:00
076618784a Lots of media for mars rover software lead, yt video grid now working, small fixes to import orders and extra photos
Some checks failed
Build and Test - Staging / build_and_push (pull_request) Has been cancelled
Build and Test - Staging / deploy_staging (pull_request) Has been cancelled
Build and Test - Staging / test (pull_request) Has been cancelled
2025-12-11 17:07:42 -08:00
91ce9aa6c6 Fixes for hardware test engineer page
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m32s
Build and Test - Staging / build_and_push (pull_request) Successful in 2m55s
Build and Test - Staging / deploy_staging (pull_request) Successful in 2s
2025-12-11 15:29:53 -08:00
52eac520e8 Added core content for hardware test engineer page
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m13s
Build and Test - Staging / build_and_push (pull_request) Successful in 3m0s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-11 14:44:16 -08:00
67b969d26b Merge pull request 'Round two, trying local gitea actions' (#16) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 3m58s
Build and Test - Production / build_and_push (push) Successful in 2m52s
Build and Test - Production / deploy_production (push) Successful in 2s
Reviewed-on: #16
2025-12-11 20:28:33 +00:00
2583e4e99b Update production with local build changes
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m3s
Build and Test - Staging / build_and_push (pull_request) Successful in 2m57s
Build and Test - Staging / deploy_staging (pull_request) Successful in 2s
2025-12-11 12:14:34 -08:00
1b1db88a2a Buildkit for docker add local insecure registry
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m29s
Build and Test - Staging / build_and_push (pull_request) Successful in 2m57s
Build and Test - Staging / deploy_staging (pull_request) Successful in 2s
2025-12-11 11:56:39 -08:00
028637fdd3 Round two, trying local gitea actions
Some checks failed
Build and Test - Staging / test (pull_request) Successful in 5m1s
Build and Test - Staging / build_and_push (pull_request) Failing after 4m45s
Build and Test - Staging / deploy_staging (pull_request) Successful in 2s
2025-12-11 11:38:42 -08:00
25d7193fff Merge pull request 'Avionics test engineering internship content and about the site' (#15) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 4m42s
Build and Test - Production / build_and_push (push) Successful in 5m7s
Build and Test - Production / deploy_production (push) Successful in 2s
Reviewed-on: #15
2025-12-11 01:15:53 +00:00
649b596c7c Added this website as content to hobbies, refactored some items into site-layout
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 5m6s
Build and Test - Staging / build_and_push (pull_request) Successful in 5m14s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-10 16:59:54 -08:00
25c08f7a1d Fixed extra padding in dropdowns for some entries in navbar
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m41s
Build and Test - Staging / build_and_push (pull_request) Successful in 5m19s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-10 14:34:57 -08:00
c320190a8d Finished avionics test engineering internship
Some checks failed
Build and Test - Staging / test (pull_request) Successful in 4m49s
Build and Test - Staging / deploy_staging (pull_request) Has been cancelled
Build and Test - Staging / build_and_push (pull_request) Has been cancelled
2025-12-10 14:28:59 -08:00
e17d28914e Inc to corp on Resume for SpaceX 2025-12-10 13:48:22 -08:00
bce5004708 Merge pull request 'Fix trailing slashes breaking pathname in prod, keep flex for main page div so footer sits properly, misspelling fix' (#14) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 4m40s
Build and Test - Production / build_and_push (push) Successful in 5m4s
Build and Test - Production / deploy_production (push) Successful in 3s
Reviewed-on: #14
2025-12-06 20:07:23 +00:00
95c9f186bb Revert local pointing build changes
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m46s
Build and Test - Staging / build_and_push (pull_request) Successful in 5m7s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-06 11:53:18 -08:00
4f571b3ae1 Explicitly make docker registry http
Some checks failed
Build and Test - Staging / build_and_push (pull_request) Failing after 1m11s
Build and Test - Staging / test (pull_request) Successful in 4m50s
Build and Test - Staging / deploy_staging (pull_request) Successful in 2s
2025-12-06 11:37:40 -08:00
c5fdcf6b10 Change docker registry to local ip for faster access
Some checks failed
Build and Test - Staging / test (pull_request) Successful in 5m18s
Build and Test - Staging / build_and_push (pull_request) Failing after 2m41s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-06 11:20:47 -08:00
a38cd26894 Fix trailing slashes breaking pathname in prod, keep flex for main page div so footer sits properly, misspelling fix
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m40s
Build and Test - Staging / build_and_push (pull_request) Successful in 5m3s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-06 11:07:06 -08:00
c580665963 Merge pull request 'Finished ross content, added skill matrix, li, and ul, and improved many existing components, created and refactored to unified layouts and grid, visual improvements with proper column to row collapsing' (#13) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 5m3s
Build and Test - Production / build_and_push (push) Successful in 5m1s
Build and Test - Production / deploy_production (push) Successful in 3s
Reviewed-on: #13
2025-12-06 18:07:53 +00:00
37e7b3617a Extra Li wrappers removed, added word
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 26m28s
Build and Test - Staging / build_and_push (pull_request) Successful in 5m4s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-06 00:12:54 -08:00
87224a6dbb Finished ross content, added skill matrix, li, and ul, and improved many existing components, created and refactored to unified layouts and grid, visual improvements with proper column to row collapsing
Some checks failed
Build and Test - Staging / build_and_push (pull_request) Has been cancelled
Build and Test - Staging / deploy_staging (pull_request) Has been cancelled
Build and Test - Staging / test (pull_request) Has been cancelled
2025-12-06 00:08:52 -08:00
6952b77980 Merge pull request 'Removed unused build, refactored H1-3 to use slot based setup, added visual and aria page highlighting for navbar links, switched all pages to use custom H1-3, better new page/tab handling for inline links' (#12) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 4m29s
Build and Test - Production / build_and_push (push) Successful in 5m1s
Build and Test - Production / deploy_production (push) Successful in 3s
Reviewed-on: #12
2025-12-05 22:39:08 +00:00
4b5f65bfdd Removed unused build, refactored H1-3 to use slot based setup, added visual and aria page highlighting for navbar links, switched all pages to use custom H1-3, better new page/tab handling for inline links
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m29s
Build and Test - Staging / build_and_push (pull_request) Successful in 4m59s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-05 14:17:12 -08:00
134790aa25 Merge pull request 'Fix production build, bad reference in staging build' (#11) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 4m27s
Build and Test - Production / build_and_push (push) Successful in 4m59s
Build and Test - Production / deploy_production (push) Successful in 2s
Reviewed-on: #11
2025-12-05 20:15:03 +00:00
f9a837f0fa Fix production build, bad reference in staging build
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 5m27s
Build and Test - Staging / build_and_push (pull_request) Successful in 6m44s
Build and Test - Staging / deploy_staging (pull_request) Successful in 2s
2025-12-05 11:55:29 -08:00
817c6076dc Merge pull request 'More website content updates' (#10) from website-content-updates into main
Some checks failed
Build and Test - Production / test (push) Failing after 3m2s
Build and Test - Production / build_and_push (push) Has been skipped
Build and Test - Production / deploy_production (push) Has been skipped
Reviewed-on: #10
2025-12-05 10:00:13 +00:00
4847e9f172 Linting
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 6m4s
Build and Test - Staging / build_and_push (pull_request) Successful in 6m28s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-12-05 01:37:46 -08:00
3aa75e1a10 LeConte deployments page complete, better auto-formatting and import sorting, new inline link, popover definitions, and paragraph components, improvements to component interfaces
Some checks failed
Build and Test - Staging / test (pull_request) Failing after 2m31s
Build and Test - Staging / build_and_push (pull_request) Has been skipped
Build and Test - Staging / deploy_staging (pull_request) Has been skipped
2025-12-05 01:02:18 -08:00
91cd9af0f8 Added pictures for CEOAS, formatting fixes, new work to dictionary
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 4m6s
Build and Test - Staging / build_and_push (pull_request) Successful in 4m6s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-11-30 19:44:24 -08:00
4a59e44716 Started refactoring, added prettier and checks and reformatted project, added cspell and checks and custom project words, beginning of robotic oceanographic surface sampler content
Some checks failed
Build and Test - Staging / test (pull_request) Failing after 2m35s
Build and Test - Staging / build_and_push (pull_request) Has been skipped
Build and Test - Staging / deploy_staging (pull_request) Has been skipped
2025-11-30 15:48:36 -08:00
67eb549ed2 Removed logging, updated packages
All checks were successful
Build and Test - Staging / test (pull_request) Successful in 3m18s
Build and Test - Staging / build_and_push (pull_request) Successful in 3m12s
Build and Test - Staging / deploy_staging (pull_request) Successful in 3s
2025-11-30 10:58:31 -08:00
6305482fc1 Merge pull request 'Need reference changed to test' (#9) from website-content-updates into main
All checks were successful
Build and Test - Production / test (push) Successful in 3m43s
Build and Test - Production / build_and_push (push) Successful in 3m32s
Build and Test - Production / deploy_production (push) Successful in 2s
Reviewed-on: #9
2025-11-10 09:33:04 +00:00
3ddd9b3640 Merge pull request 'Fixed extra repo_version that wasn't removed in prod build' (#8) from website-content-updates into main
Some checks failed
Build and Test - Production / test (push) Successful in 3m26s
Build and Test - Production / build_and_push (push) Failing after 47s
Build and Test - Production / deploy_production (push) Successful in 3s
Reviewed-on: #8
2025-11-10 09:25:06 +00:00
43d0724345 Merge pull request 'website-content-updates' (#7) from website-content-updates into main
Some checks failed
Build and Test - Production / test (push) Successful in 3m39s
Build and Test - Production / build_and_push (push) Failing after 48s
Build and Test - Production / deploy_production (push) Successful in 3s
Reviewed-on: #7
2025-11-10 09:18:10 +00:00
aeffd1545f Merge pull request 'Favicon, better screen responsive, starting experience layouts' (#6) from website-content-updates into main
All checks were successful
Build and Test - Production / determine_version (push) Successful in 6s
Build and Test - Production / build_and_push (push) Successful in 47s
Build and Test - Production / test (push) Successful in 1s
Build and Test - Production / deploy_production (push) Successful in 3s
Reviewed-on: #6
2025-07-09 11:48:33 +00:00
e9dd38ca6a Merge pull request 'Footer with environment, build, and hash' (#5) from website-content-updates into main
All checks were successful
Build and Test - Production / determine_version (push) Successful in 5s
Build and Test - Production / build_and_push (push) Successful in 47s
Build and Test - Production / test (push) Successful in 2s
Build and Test - Production / deploy_production (push) Successful in 2s
Reviewed-on: #5
2025-07-09 11:03:25 +00:00
218 changed files with 6459 additions and 1988 deletions

View File

@@ -1,7 +1,17 @@
.DS_Store .DS_Store
.idea .gitea/
.astro .astro/
.idea/
*/dist/
*/build/ */build/
*/node_modules/ */node_modules/
*/playwright-report/
*/test-results/
.gitignore
Dockerfile
Makefile
new-words.txt
README.md

7
.editorconfig Normal file
View File

@@ -0,0 +1,7 @@
[*]
charset = utf-8
insert_final_newline = true
end_of_line = lf
indent_style = space
indent_size = 2
max_line_length = 80

View File

@@ -1,27 +0,0 @@
name: Playwright Tests
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Install dependencies
run: npm ci
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright-report/
retention-days: 30

View File

@@ -1,7 +1,7 @@
name: Build and Test - Production name: Build and Test - Production
on: on:
push: push:
branches: [ main ] branches: [main]
jobs: jobs:
test: test:
@@ -12,16 +12,24 @@ jobs:
project_version: ${{ steps.project_metadata.outputs.PROJECT_VERSION }} project_version: ${{ steps.project_metadata.outputs.PROJECT_VERSION }}
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Setup Node Environment - name: Setup Node Environment
uses: actions/setup-node@v4 uses: actions/setup-node@v6
with:
node-version: ">=22.20"
- name: Setup Project Dependencies - name: Setup Project Dependencies
run: | run: |
npm ci npm ci
npx playwright install --with-deps npx playwright install --with-deps
- name: Code Formatting Check
run: npx prettier . --check
- name: Spelling Check
run: npx cspell .
- name: Build Project - name: Build Project
run: npm run build run: npm run build
@@ -42,28 +50,32 @@ jobs:
needs: test needs: test
steps: steps:
- name: Checkout caperren-com Repository - name: Checkout caperren-com Repository
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
path: caperren-com path: caperren-com
- name: Login to Docker Registry - name: Login to Docker Registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: gitea.perren.cloud registry: 192.168.1.36:30008
username: ${{ secrets.REGISTRY_USERNAME }} username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.ACTIONS_TOKEN }} password: ${{ secrets.ACTIONS_TOKEN }}
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
with:
buildkitd-config-inline: |
[registry."192.168.1.36:30008"]
http = true
- name: Build and Push - name: Build and Push
uses: docker/build-push-action@v5 uses: docker/build-push-action@v6
with: with:
context: caperren-com context: caperren-com
push: true push: true
tags: | tags: |
gitea.perren.cloud/caperren/${{ needs.test.outputs.repo_name }}:${{ needs.test.outputs.repo_version_hash }} 192.168.1.36:30008/caperren/${{ needs.test.outputs.repo_name }}:${{ needs.test.outputs.repo_version_hash }}
gitea.perren.cloud/caperren/caperren-com:latest 192.168.1.36:30008/caperren/caperren-com:latest
build-args: | build-args: |
REPO_VERSION_HASH=${{ needs.test.outputs.repo_version_hash }} REPO_VERSION_HASH=${{ needs.test.outputs.repo_version_hash }}
BUILD_ENVIRONMENT=production BUILD_ENVIRONMENT=production

View File

@@ -1,7 +1,7 @@
name: Build and Test - Staging name: Build and Test - Staging
on: on:
pull_request: pull_request:
types: [ opened, synchronize, reopened ] types: [opened, synchronize, reopened]
jobs: jobs:
test: test:
@@ -24,6 +24,12 @@ jobs:
npm ci npm ci
npx playwright install --with-deps npx playwright install --with-deps
- name: Code Formatting Check
run: npx prettier . --check
- name: Spelling Check
run: npx cspell .
- name: Build Project - name: Build Project
run: npm run build run: npm run build
@@ -51,12 +57,16 @@ jobs:
- name: Login to Docker Registry - name: Login to Docker Registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: gitea.perren.cloud registry: 192.168.1.36:30008
username: ${{ secrets.REGISTRY_USERNAME }} username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.ACTIONS_TOKEN }} password: ${{ secrets.ACTIONS_TOKEN }}
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
with:
buildkitd-config-inline: |
[registry."192.168.1.36:30008"]
http = true
- name: Build and Push - name: Build and Push
uses: docker/build-push-action@v6 uses: docker/build-push-action@v6
@@ -64,9 +74,9 @@ jobs:
context: caperren-com context: caperren-com
push: true push: true
tags: | tags: |
gitea.perren.cloud/caperren/caperren-com:latest-staging 192.168.1.36:30008/caperren/caperren-com:latest-staging
build-args: | build-args: |
REPO_VERSION_HASH=${{ needs.determine_version.outputs.repo_version_hash }} REPO_VERSION_HASH=${{ needs.test.outputs.repo_version_hash }}
BUILD_ENVIRONMENT=staging BUILD_ENVIRONMENT=staging
deploy_staging: deploy_staging:

9
.gitignore vendored
View File

@@ -1,9 +1,3 @@
# Ignore everything under src/content, as they are dynamically added from obsidian
src/content/*
# Do not ignore config.ts in src/content since that necessary to import the dynamic content
!src/content/config.ts
# build output # build output
dist/ dist/
@@ -35,3 +29,6 @@ pnpm-debug.log*
/blob-report/ /blob-report/
/playwright/.cache/ /playwright/.cache/
/playwright/.auth/ /playwright/.auth/
# Local temporary storage files
new-words.txt

34
.prettierignore Normal file
View File

@@ -0,0 +1,34 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
# jetbrains setting folder
.idea/
# Playwright
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
/playwright/.auth/
# Local temporary storage files
new-words.txt

29
.prettierrc Normal file
View File

@@ -0,0 +1,29 @@
{
"astroOrganizeImportsMode": "All",
"importOrder": [
"^@core/(.*)$",
"^@server/(.*)$",
"^@ui/(.*)$",
"^@layouts/(.*)$",
"^@components/(.*)$",
"^@interfaces/(.*)$",
"^@assets/(.*)$",
"^[./]"
],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"plugins": [
"prettier-plugin-astro",
"prettier-plugin-tailwindcss",
"@trivago/prettier-plugin-sort-imports",
"prettier-plugin-astro-organize-imports"
],
"overrides": [
{
"files": "*.astro",
"options": {
"parser": "astro"
}
}
]
}

View File

@@ -5,12 +5,27 @@ WORKDIR /app
# Therefore, the `-deps` steps will be skipped if only the source code changes. # Therefore, the `-deps` steps will be skipped if only the source code changes.
COPY package.json package-lock.json tsconfig.json astro.config.mjs ./ COPY package.json package-lock.json tsconfig.json astro.config.mjs ./
CMD [ "/bin/bash" ]
FROM base AS prod-deps FROM base AS prod-deps
RUN npm install --omit=dev RUN npm install --omit=dev
FROM prod-deps AS test-base
RUN npm ci
RUN npx playwright install --with-deps
FROM prod-deps AS build FROM prod-deps AS build
COPY . . COPY --exclude=test \
--exclude=test-e2e \
--exclude=playwright.config.ts \
--exclude=vitest.config.ts \
--exclude=.prettierrc \
--exclude=.prettierignore \
--exclude=cspell.json \
--exclude=project-words.txt \
. .
ARG REPO_VERSION_HASH ARG REPO_VERSION_HASH
ARG BUILD_ENVIRONMENT ARG BUILD_ENVIRONMENT
@@ -19,6 +34,16 @@ RUN echo "PUBLIC_REPO_VERSION_HASH=\"${REPO_VERSION_HASH}\" \n\
PUBLIC_BUILD_ENVIRONMENT=\"${BUILD_ENVIRONMENT}\"" >> .env PUBLIC_BUILD_ENVIRONMENT=\"${BUILD_ENVIRONMENT}\"" >> .env
RUN npm run build RUN npm run build
FROM test-base AS test
COPY . .
COPY --from=build /app/dist /app/dist
RUN npx prettier . --check
RUN npx cspell .
RUN npm run test
RUN npm run e2e-test
FROM nginx:alpine AS runtime FROM nginx:alpine AS runtime
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf COPY ./nginx/nginx.conf /etc/nginx/nginx.conf

View File

@@ -6,7 +6,17 @@
astro_upgrade \ astro_upgrade \
build \ build \
dev \ dev \
dev-hosted dev-hosted \
test \
_spelling-generate-new-words \
spelling-find-new-words \
spelling-add-new-words \
spelling-check \
cleanup-check \
cleanup-code \
convert_video \
convert_video_times \
generate_asset_imports
default: dev default: dev
@@ -28,3 +38,63 @@ dev:
dev-hosted: dev-hosted:
npm run dev-hosted npm run dev-hosted
test: spelling-check
@npx playwright install --with-deps
npm run test --ui
npx playwright test --ui
_spelling-generate-new-words:
@cspell --words-only --unique . 2>/dev/null | sort --ignore-case -o new-words.txt
spelling-find-new-words: _spelling-generate-new-words
@echo "Found the following new words:"
@cat new-words.txt
@rm -f new-words.txt
spelling-add-new-words: _spelling-generate-new-words
@echo "Adding to project-words.txt"
@cat new-words.txt >> project-words.txt
@rm -f new-words.txt
@cat project-words.txt | sort --ignore-case -o project-words.txt
spelling-check:
npx cspell .
cleanup-check:
npx prettier . --check
cleanup-code:
npx prettier . --write
convert_video:
ffmpeg \
-init_hw_device vaapi=va:/dev/dri/renderD128 \
-filter_hw_device va \
-i $(input) \
-vf 'format=nv12,hwupload,scale_vaapi=-2:720' \
-c:v h264_vaapi \
-rc_mode CQP \
-qp 28 \
-an \
$(extra_args) \
$(output)
convert_video_times:
ffmpeg \
-init_hw_device vaapi=va:/dev/dri/renderD128 \
-filter_hw_device va \
-i $(input) \
-ss $(start) \
-to $(end) \
-vf 'format=nv12,hwupload,scale_vaapi=-2:720' \
-c:v h264_vaapi \
-rc_mode CQP \
-qp 28 \
-an \
$(output)
generate_asset_imports:
@for assets_path in `find "src/assets/${assets_relative_path}" -maxdepth 1 -type f -printf "%f\n"`; do \
without_extension=$${assets_path/%.*}; \
echo "import $${without_extension//-/_} from \"@assets/${assets_relative_path}/$$assets_path\";"; \
done;

View File

@@ -1,3 +1,3 @@
# Corwin Perren's Personal Portfolio Website # Corwin Perren's Personal Portfolio Website
Check the Makfile and/or package.json for the commands needed to build and run this project. Check the Makefile and/or package.json for the commands needed to build and run this project.

View File

@@ -1,31 +1,32 @@
// @ts-check // @ts-check
import {defineConfig} from 'astro/config';
import sitemap from "@astrojs/sitemap"; import sitemap from "@astrojs/sitemap";
import tailwindcss from "@tailwindcss/vite"; import tailwindcss from "@tailwindcss/vite";
import { defineConfig } from "astro/config";
// We don't have access to short imports this early in the build chain // We don't have access to short imports this early in the build chain
// noinspection ES6PreferShortImport // noinspection ES6PreferShortImport
import {siteLayout, getPaths} from "./src/data/site-layout.ts"; import { getPaths, siteLayout } from "./src/data/site-layout.ts";
const disabledPaths = getPaths(siteLayout, [], true) const disabledPaths = getPaths(siteLayout, [], true);
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
site: "https://caperren.com", site: "https://caperren.com",
trailingSlash: "never",
prefetch: { prefetch: {
prefetchAll: true prefetchAll: true,
}, },
integrations: [ integrations: [
sitemap({ sitemap({
filter: (pagePath) => filter: (pagePath) =>
!disabledPaths.some(disabledPath => pagePath.includes(disabledPath)) !disabledPaths.some((disabledPath) => pagePath.includes(disabledPath)),
}) }),
], ],
vite: { vite: {
plugins: [ plugins: [
// @ts-ignore // @ts-ignore
tailwindcss() tailwindcss(),
], ],
}, },
}); });

23
cspell.json Normal file
View File

@@ -0,0 +1,23 @@
{
"$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json",
"version": "0.2",
"dictionaryDefinitions": [
{
"name": "project-words",
"path": "./project-words.txt",
"addWords": true
}
],
"dictionaries": ["project-words"],
"ignorePaths": [
".astro",
".idea",
"dist",
"node_modules",
"playwright-report",
"test-results",
"new-words.txt",
"playwright.config.ts",
"/project-words.txt"
]
}

2078
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,6 @@
{ {
"name": "caperren-com", "name": "caperren-com",
"type": "module", "type": "module",
"version": "0.0.1",
"scripts": { "scripts": {
"dev": "astro dev", "dev": "astro dev",
"dev-hosted": "astro dev --host", "dev-hosted": "astro dev --host",
@@ -14,7 +13,7 @@
"dependencies": { "dependencies": {
"@astrojs/sitemap": "^3.6.0", "@astrojs/sitemap": "^3.6.0",
"@tailwindcss/vite": "^4.1.11", "@tailwindcss/vite": "^4.1.11",
"astro": "^5.15.4", "astro": "^5.16.3",
"flowbite": "^3.1.2", "flowbite": "^3.1.2",
"leader-line-new": "^1.1.9", "leader-line-new": "^1.1.9",
"luxon": "^3.7.2", "luxon": "^3.7.2",
@@ -23,8 +22,14 @@
}, },
"devDependencies": { "devDependencies": {
"@playwright/test": "^1.56.1", "@playwright/test": "^1.56.1",
"@trivago/prettier-plugin-sort-imports": "^6.0.0",
"@types/luxon": "^3.7.1", "@types/luxon": "^3.7.1",
"@types/node": "^24.10.0", "@types/node": "^24.10.0",
"cspell": "^9.3.2",
"prettier": "3.7.3",
"prettier-plugin-astro": "0.14.1",
"prettier-plugin-astro-organize-imports": "^0.4.11",
"prettier-plugin-tailwindcss": "0.7.1",
"vitest": "^4.0.7" "vitest": "^4.0.7"
} }
} }

View File

@@ -1,4 +1,4 @@
import {defineConfig, devices} from '@playwright/test'; import { defineConfig, devices } from "@playwright/test";
/** /**
* Read environment variables from file. * Read environment variables from file.
@@ -12,7 +12,7 @@ import {defineConfig, devices} from '@playwright/test';
* See https://playwright.dev/docs/test-configuration. * See https://playwright.dev/docs/test-configuration.
*/ */
export default defineConfig({ export default defineConfig({
testDir: './test-e2e', testDir: "./test-e2e",
/* Run tests in files in parallel */ /* Run tests in files in parallel */
fullyParallel: true, fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */ /* Fail the build on CI if you accidentally left test.only in the source code. */
@@ -22,42 +22,42 @@ export default defineConfig({
/* Opt out of parallel tests on CI. */ /* Opt out of parallel tests on CI. */
workers: process.env.CI ? 1 : undefined, workers: process.env.CI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: 'html', reporter: "html",
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: { use: {
/* Base URL to use in actions like `await page.goto('')`. */ /* Base URL to use in actions like `await page.goto('')`. */
baseURL: 'http://localhost:4321', baseURL: "http://localhost:4321",
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry', trace: "on-first-retry",
}, },
/* Configure projects for major browsers */ /* Configure projects for major browsers */
projects: [ projects: [
{ {
name: 'chromium', name: "chromium",
use: {...devices['Desktop Chrome']}, use: { ...devices["Desktop Chrome"] },
}, },
// { {
// name: 'firefox', name: "firefox",
// use: { ...devices['Desktop Firefox'] }, use: { ...devices["Desktop Firefox"] },
// }, },
//
// { {
// name: 'webkit', name: "webkit",
// use: { ...devices['Desktop Safari'] }, use: { ...devices["Desktop Safari"] },
// }, },
/* Test against mobile viewports. */ /* Test against mobile viewports. */
{ {
name: 'Mobile Chrome', name: "Mobile Chrome",
use: {...devices['Pixel 5']}, use: { ...devices["Pixel 5"] },
},
{
name: "Mobile Safari",
use: { ...devices["iPhone 12"] },
}, },
// {
// name: 'Mobile Safari',
// use: { ...devices['iPhone 12'] },
// },
/* Test against branded browsers. */ /* Test against branded browsers. */
// { // {
@@ -72,8 +72,8 @@ export default defineConfig({
/* Run your local dev server before starting the tests */ /* Run your local dev server before starting the tests */
webServer: { webServer: {
command: 'npm run preview', command: "npm run preview",
url: 'http://localhost:4321', url: "http://localhost:4321",
timeout: 120 * 1000, timeout: 120 * 1000,
reuseExistingServer: !process.env.CI, reuseExistingServer: !process.env.CI,
}, },

96
project-words.txt Normal file
View File

@@ -0,0 +1,96 @@
ADCP
Altium
ASSEM
astrojs
Atmel
automations
barebones
beaglebone
Bitwarden
Candian
caperren
CEOAS
COMSC
Concours
CONSERV
Corwin
dangerousthings
dechorionation
Dechorionator
dechorionators
dockerization
dockerizing
drumheller
ebox
ELMI
fhhs
flowbite
flowrate
gcode
gerbers
Gitea
HDFS
headshot
Homelab
hwupload
iceops
ITAR
Jetson
KFSK
Labjack
leconte
Loctite
luxon
MGMT
microcontroller
microcontroller's
Micropumps
Millis
modbus
Mokai
Multimeters
nixos
nvme
offroad
Onshape
OSSM
OSURC
panelized
Passthroughs
pcbs
Perren
Perren's
Pixhawk
Protocase
pubpath
RFID
Rito
RSSI
SARL
SCARA
showerheads
Shuttlebox
simplemotion
sinnhuber
sitemapindex
Smartsheet
solderable
ssds
Starlink
steller
Steller
Tanguay
Teamcenter
timelapse
touchoff
triaging
trivago
Truong
Ubiquiti
Unstow
uuidv
vaapi
vitest
Waterjet
Zebrafish
zscan

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 851 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1017 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 KiB

Some files were not shown because too many files have changed in this diff Show More