Commit graph

11 commits

Author SHA1 Message Date
6a98787cfa ci: enable Debian non-free in deb822 sources for snmp-mibs-downloader
Bookworm runner images use /etc/apt/sources.list.d/*.sources (deb822),
which the legacy sed didn't touch — non-free stayed off and
snmp-mibs-downloader was unavailable. Patch the Components: line in
deb822 sources too.
2026-05-01 13:16:50 -05:00
28dd7a6953 ci: bump _build cache key v2 -> v3
Stale cache contains compiled oban_pro 1.6.13 artifacts that conflict
with the vendored 1.7.0 source.
2026-05-01 13:09:57 -05:00
45413095a9 ci: guard sources.list sed against missing file
Newer Ubuntu/Debian runners use /etc/apt/sources.list.d/ and don't have
/etc/apt/sources.list, causing the sed to fail with exit code 2.
2026-04-29 14:34:27 -05:00
f648b6cb9b fix(ci): modify existing sources.list to add non-free instead of creating new file 2026-04-17 17:42:34 -05:00
bc7651cec4 fix(ci): detect OS before enabling non-free — Debian needs it, Ubuntu multiverse already enabled 2026-04-17 17:38:06 -05:00
a878fb7abd fix(ci): remove bad Debian sources entry — runner is Ubuntu Noble with multiverse already enabled 2026-04-17 17:32:32 -05:00
dd028f6157 fix(ci): enable Debian non-free repo for snmp-mibs-downloader; loosen flaky timing assertion to 500ms 2026-04-17 17:24:15 -05:00
84f38b6491 fix(ci): remove sudo from apt-get — Forgejo runner runs as root 2026-04-17 17:16:18 -05:00
efaf5558ff refactor: convert 6 Gleam modules to idiomatic Elixir with TDD (#196)
Phase 1: Foundation Types (100% complete)
- query_helpers: SQL LIKE sanitization with pipe operators
- numeric: Integer parsing with pattern matching guards
- result: Pure Elixir Result monad (map, and_then, unwrap_or)

Phase 2: Ecto Domain Types (100% complete)
- ip_address: IPv4/IPv6 validation using :inet directly
- mac_address: Multi-format MAC parsing (colon/hyphen/dot/compact)
- snmp_oid: OID parsing/manipulation with recursive pattern matching

All 198 tests passing across converted modules.
API changed from Gleam-style {:some/:none to idiomatic {:ok/:error.
Refactored parse_numeric_oid to use with statement, reducing nesting depth.

Reviewed-on: graham/towerops-web#196
2026-03-28 09:52:07 -05:00
3c935ed56e e2e-workflow-separate (#67)
Reviewed-on: graham/towerops-web#67
2026-03-17 16:30:45 -05:00
f897b32999 Separate E2E tests into manual workflow (#66)
Moves e2e tests from production workflow into a separate workflow that requires manual triggering. This allows e2e tests to be run on-demand without blocking production deployments.

Changes:
- Created new .forgejo/workflows/e2e-tests.yaml with workflow_dispatch trigger
- Removed disabled e2e job from production.yaml workflow
- E2E tests can now be triggered manually from Actions tab with browser selection (all, chromium, firefox, webkit)
- Test results and videos uploaded as artifacts on all runs

Reviewed-on: graham/towerops-web#66
2026-03-17 16:26:41 -05:00