Add container publishing and env-based runtime
CI / test (push) Successful in 30s
CI / publish (push) Failing after 27s

This commit is contained in:
Joe Julian
2026-03-28 15:36:52 -07:00
parent 36af73a209
commit 5f16410960
5 changed files with 103 additions and 53 deletions
+10 -4
View File
@@ -12,11 +12,13 @@ Required when `SEND_EMAIL=true`:
Recommended settings:
- `ALMA_CREDS_FILE=/config/alma.creds`
- `ALMA_ASSIGNMENTS_URL=https://example.invalid/children/student-id/assignments`
- `ALMA_SCHEDULE_URL=https://example.invalid/children/student-id/schedule`
- `ALMA_START_DATE=2026-01-20`
- `ALMA_UPCOMING_DAYS=14`
- `ALMA_CREDS_FILE=/config/alma.creds`
- `ALMA_USERNAME`
- `ALMA_PASSWORD`
- `SMTP_PORT=587`
- `SMTP_STARTTLS=true`
- `SMTP_USERNAME`
@@ -26,7 +28,10 @@ Recommended settings:
Any setting can also be supplied via a `*_FILE` variant such as `SMTP_PASSWORD_FILE`.
The Alma credentials file format is:
The Alma credentials can be supplied either by:
- `ALMA_USERNAME` and `ALMA_PASSWORD`
- `ALMA_CREDS_FILE` containing:
```yaml
username: your-alma-username
@@ -48,8 +53,9 @@ It runs on pushes to `main` and pull requests, and currently:
- runs `go test ./...`
- runs `go build .`
- builds and pushes `:main` and `:sha-<commit>` container tags on pushes to `main`
The workflow expects a runner with the `ubuntu-latest` label. The cluster runner deployed for this repo provides that label.
The workflow expects a runner with the `ubuntu-latest` label and a repository Actions secret named `REGISTRY_PASSWORD` that can push to the Gitea container registry. The cluster runner deployed for this repo provides the required runner label.
## Container
@@ -63,4 +69,4 @@ The container image uses a static Go binary in `scratch`, with only the CA bundl
## Kubernetes
Use a Secret for Alma and SMTP credentials. The example manifest in `cronjob.example.yaml` mounts Alma credentials at `/config/alma.creds` and reads SMTP credentials from secret-backed environment variables.
Use a Secret for Alma and SMTP credentials. The example manifest in `cronjob.example.yaml` reads all runtime settings from Kubernetes secrets and does not require a credentials file mount.