1 Commits

Author SHA1 Message Date
Emma Thorpe 86f14ad68a ci: only build when image-affecting files change
Add path filters so the workflow runs only when the Dockerfile, nginx config,
site assets or .dockerignore change. CI-config, Renovate-config and docs
changes (such as a Renovate bump of a CI action) no longer trigger a build or
release. workflow_dispatch is added for manual runs after pipeline changes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 11:38:30 +01:00
2 changed files with 28 additions and 13 deletions
+21
View File
@@ -1,10 +1,31 @@
name: Build and publish container
# Only run when files that affect the built image change. Updates to CI
# config, Renovate config, or docs (e.g. a Renovate bump of the checkout
# action) do not change the image and so do not trigger a build or release.
# Use workflow_dispatch to run manually after a pipeline change.
on:
push:
branches: [main]
paths:
- 'Dockerfile'
- 'default.conf'
- 'index.html'
- 'styles.css'
- 'script.js'
- 'messages.js'
- '.dockerignore'
pull_request:
branches: [main]
paths:
- 'Dockerfile'
- 'default.conf'
- 'index.html'
- 'styles.css'
- 'script.js'
- 'messages.js'
- '.dockerignore'
workflow_dispatch:
defaults:
run:
+7 -13
View File
@@ -63,13 +63,10 @@ body {
padding: 1.5rem;
}
/* Segmented control: both options joined in one rounded container,
with the active segment filled. */
.theme-toggle {
display: inline-flex;
border: 2px solid var(--button-bg);
border-radius: 999px;
overflow: hidden;
display: flex;
gap: 0.5rem;
border: none;
margin: 0;
padding: 0;
}
@@ -78,22 +75,19 @@ body {
font-family: inherit;
font-size: 0.9rem;
font-weight: 600;
padding: 0.5rem 1.1rem;
border: none;
padding: 0.5rem 1rem;
border: 2px solid var(--button-bg);
border-radius: 999px;
background: transparent;
color: var(--text);
cursor: pointer;
transition: background 0.2s ease, color 0.2s ease;
}
/* Divider between the two segments. */
.theme-button + .theme-button {
border-left: 2px solid var(--button-bg);
}
.theme-button[aria-pressed="true"] {
background: var(--button-active-bg);
color: var(--button-active-text);
border-color: var(--button-active-bg);
}
.stage {