Compare commits

...
2 Commits
Author SHA1 Message Date
Aaro Koivukangas 3d68157f13 [CI] Change to use private registry 2026-10-12 17:51:09 +03:00
Aaro Koivukangas b700113371 [CI] Fix flaky test 2026-10-12 12:06:31 +03:00
4 changed files with 19 additions and 12 deletions
+5 -6
View File
@@ -34,20 +34,19 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: read contents: read
packages: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3 - uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3 - uses: docker/login-action@v3
with: with:
registry: ghcr.io registry: registry.pumppi.dev
username: ${{ github.actor }} username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.REGISTRY_PASSWORD }}
- uses: docker/build-push-action@v6 - uses: docker/build-push-action@v6
with: with:
push: true push: true
tags: | tags: |
ghcr.io/${{ github.repository_owner }}/wasab:latest registry.pumppi.dev/wasab:latest
ghcr.io/${{ github.repository_owner }}/wasab:${{ github.sha }} registry.pumppi.dev/wasab:${{ github.sha }}
cache-from: type=gha cache-from: type=gha
cache-to: type=gha,mode=max cache-to: type=gha,mode=max
+1 -1
View File
@@ -28,7 +28,7 @@ in `src/apps.test.ts`, which is there so a removed or mistyped app is noticed.
## Deploy ## Deploy
Pushing to `main` runs CI and publishes `ghcr.io/iritmaximus/wasab:latest`. Argo CD image-updater Pushing to `main` runs CI and publishes `registry.pumppi.dev/wasab:latest`. Argo CD image-updater
picks up the new digest and rolls out `k8s-pumppi/wasab`. The container serves on port 8080 with a picks up the new digest and rolls out `k8s-pumppi/wasab`. The container serves on port 8080 with a
`/health` endpoint for probes. `/health` endpoint for probes.
+6 -3
View File
@@ -46,10 +46,13 @@ test('clicking anywhere on a card follows its link', async ({ page }) => {
test('search filters and Escape resets', async ({ page }) => { test('search filters and Escape resets', async ({ page }) => {
const search = page.getByRole('searchbox', { name: 'Search apps' }); const search = page.getByRole('searchbox', { name: 'Search apps' });
// the shortcut is registered in an effect that can land after the load event // the shortcut is registered in an effect that can land after the load event;
// only press again while unfocused, a "/" typed into the box would fail the next check
await expect(async () => { await expect(async () => {
await page.keyboard.press('/'); if (!(await search.evaluate((el) => el === document.activeElement))) {
await expect(search).toBeFocused({ timeout: 100 }); await page.keyboard.press('/');
}
await expect(search).toBeFocused({ timeout: 500 });
}).toPass(); }).toPass();
await expect(search).toHaveValue(''); await expect(search).toHaveValue('');
+7 -2
View File
@@ -291,7 +291,8 @@ body {
@media (max-width: 480px) { @media (max-width: 480px) {
.page { .page {
padding-top: 20px; padding-top: 16px;
padding-bottom: 16px;
} }
.tagline { .tagline {
@@ -303,7 +304,7 @@ body {
} }
.footer { .footer {
margin-top: 20px; margin-top: 16px;
} }
/* two narrow columns so everything fits on a phone screen */ /* two narrow columns so everything fits on a phone screen */
@@ -324,9 +325,13 @@ body {
font-size: 0.7rem; font-size: 0.7rem;
} }
/* one line regardless of the system font, so card height stays predictable */
.card-description { .card-description {
overflow: hidden;
font-size: 0.8rem; font-size: 0.8rem;
line-height: 1.35; line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
} }
.badges { .badges {