Commit graph

21 commits

Author SHA1 Message Date
Graham McInitre
e5a6dd173c update imagens 2026-07-16 07:54:28 -05:00
8cb8b5b027 update elixir and erlang 2026-06-23 09:43:24 -05:00
26ac82653e chore: update elixir 1.20.0 / erlang 29.0.1 / debian trixie, add libsctp1 2026-06-04 15:41:19 -05:00
fdff67237e
Dockerfile: align Elixir/OTP/Debian versions with microwaveprop 2026-04-29 12:45:21 -05:00
44a80cd5eb remove-gleam (#218)
Reviewed-on: graham/towerops-web#218
2026-03-29 11:03:20 -05:00
6859525a1b Integrate Gleam into the build pipeline and rewrite three pure-function modules (#98)
Set up mix_gleam archive, gleam_stdlib, and gleeunit deps. Add Gleam
compiler to all Dockerfiles, CI workflows, nix shell, and .tool-versions.

Rewrite Numeric, QueryHelpers, and URLValidator from Elixir to Gleam with
full ExUnit test coverage. Update all callers to use the Gleam modules
directly via :towerops@module syntax. Remove duplicate sanitize_like/1
private functions in snmp.ex and trace.ex.

Reviewed-on: graham/towerops-web#98
2026-03-21 07:30:36 -05:00
8bad7c724e
perf(docker): optimize build for 3-core system
- Set MIX_OS_DEPS_COMPILE_PARTITION_COUNT to 3 (match available cores)
- Enable Erlang JIT perf improvements
- Remove redundant hex/rebar installation calls (already done earlier)

This won't eliminate Docker compile time but should make better use of
the 3 available cores. Estimated savings: 1-2 minutes on build.
2026-03-05 19:18:26 -06:00
b765d6d6ce
fix: install hex/rebar inside cache-mounted RUN steps in Dockerfile
The --mount=type=cache,target=/root/.mix overlays shadow the hex
installation done in the prior non-cached RUN step. With a cold cache
the hex archive is absent, causing 'Could not find an SCM for dependency'
errors. Install hex and rebar inside each cache-mounted step instead.
2026-02-17 16:59:27 -06:00
65f0f23c93 fix: compile C NIF explicitly in Docker build
Add explicit 'make' step in Dockerfile to compile the C NIF before
Elixir compilation. This ensures towerops_nif.so exists when the
Elixir code tries to load it.

The custom compiler task creates a bootstrap problem (needs to be
compiled before it can be used as a compiler), so we compile the
C NIF explicitly instead of relying on the compilers list.
2026-01-30 13:04:06 -06:00
b663d484cf nif ci fix complie in ci 2026-01-30 12:47:18 -06:00
1af381b5bf
snmp tests and docker attempt to build locally 2026-01-27 10:16:54 -06:00
e94cae3435
add vendor dir to dockerfile 2026-01-26 17:22:31 -06:00
86cac2b567
docker tweak 2026-01-25 11:20:46 -06:00
7656ac7212
import yamls 2026-01-21 14:30:04 -06:00
ba5464332b
fix: use system ping command instead of raw ICMP sockets
- Rewrote Ping module to use system ping binary instead of raw ICMP
  sockets which required CAP_NET_RAW privileges
- Added iputils-ping package to Docker images for production
- Added proper IP address validation before executing ping command
- Updated tests to account for 1 second minimum timeout of system ping
- System ping binary is setuid root and works without elevated privileges
2026-01-21 11:15:59 -06:00
b8b3c5dce0
add parallel build 2026-01-19 14:17:05 -06:00
adec4b134f
snmp overhaul 2026-01-18 16:00:01 -06:00
d7481dc0fd
Silence debconf warnings in Docker builds
Set DEBIAN_FRONTEND=noninteractive for all apt-get operations
to prevent interactive frontend warnings in build logs
2026-01-03 16:00:54 -06:00
1ea4496e95
Add BuildKit cache mounts to speed up Docker builds
- Cache Hex packages across builds
- Cache Mix archives across builds
- Cache npm packages for asset tooling
- Speeds up dependency installation significantly
2026-01-03 15:55:24 -06:00
570c6d03b3
Dockerfile improvements 2026-01-03 15:38:14 -06:00
1970f3c928
add release 2026-01-02 14:36:38 -06:00