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
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
registry: registry.pumppi.dev
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- uses: docker/build-push-action@v6
with:
push: true
tags: |
ghcr.io/${{ github.repository_owner }}/wasab:latest
ghcr.io/${{ github.repository_owner }}/wasab:${{ github.sha }}
registry.pumppi.dev/wasab:latest
registry.pumppi.dev/wasab:${{ github.sha }}
cache-from: type=gha
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
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
`/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 }) => {
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 page.keyboard.press('/');
await expect(search).toBeFocused({ timeout: 100 });
if (!(await search.evaluate((el) => el === document.activeElement))) {
await page.keyboard.press('/');
}
await expect(search).toBeFocused({ timeout: 500 });
}).toPass();
await expect(search).toHaveValue('');
+7 -2
View File
@@ -291,7 +291,8 @@ body {
@media (max-width: 480px) {
.page {
padding-top: 20px;
padding-top: 16px;
padding-bottom: 16px;
}
.tagline {
@@ -303,7 +304,7 @@ body {
}
.footer {
margin-top: 20px;
margin-top: 16px;
}
/* two narrow columns so everything fits on a phone screen */
@@ -324,9 +325,13 @@ body {
font-size: 0.7rem;
}
/* one line regardless of the system font, so card height stays predictable */
.card-description {
overflow: hidden;
font-size: 0.8rem;
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
}
.badges {