Files
aml/.goreleaser.yml
T
zeekayandHanzo Dev 07e69e3ee2 luxfi/aml — real-time AML/CFT transaction monitoring
A Go AML engine: a configurable rules DSL over expr-lang with weight-of-evidence
scoring, sanctions screening against OFAC/UN/EU/HMT, case management, and scored
alerting. Single binary, embedded SQLite per org, embedded UI.

Surface (all /v1, org-scoped):
  /v1/aml/transactions        ingest and score
  /v1/aml/rules  /rules/test  the rules DSL and its dry-run
  /v1/aml/sanctions/search    list screening
  /v1/aml/cases               investigation workflow
  /v1/aml/health

Build: make build produces one static binary with the UI embedded (embedui tag);
bare Go tooling needs no Node. Third-party license and notice texts are generated
from the module graph the linker actually walks and ship beside every artifact.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 22:51:25 -07:00

86 lines
2.4 KiB
YAML

# goreleaser config for amld.
#
# Triggered by the release workflow on `v*` tag push. Builds native
# binaries for all six policy platforms, produces tarballs + zips +
# checksums + SBOM, and attaches them to the GitHub Release.
#
# Container images are built separately by `.github/workflows/docker.yml`
# (native multi-arch via hanzoai/.github reusable workflow).
version: 2
project_name: amld
# Reaches the before-hooks and the builds alike. The notice file has to describe
# the same graph the binary links, and blst is reachable only under cgo, so the
# setting belongs in one place rather than repeated per build.
env:
- CGO_ENABLED=0
before:
hooks:
# Never `go mod tidy` here: a release hook that can rewrite go.mod/go.sum
# makes the released artifact depend on when it was built.
- go mod download
- pnpm --dir ui install --frozen-lockfile
- pnpm --dir ui build
# Third-party license and notice texts, derived from the binary's module
# graph. Runs after the UI build so the embedui graph resolves.
#
# One notice file goes into all six archives, and the module set differs by
# platform (darwin links ncruces/go-strftime, linux links prometheus/procfs),
# so it has to be the union over the build matrix below. The other two
# distribution paths pass no -platforms: `make build` and the image each
# produce a single binary, and the host default already describes it.
- go run ./internal/notice -tags embedui -pkg ./cmd/amld -name amld
-platforms linux/amd64,linux/arm64,darwin/amd64,darwin/arm64,windows/amd64,windows/arm64
-o THIRD-PARTY-NOTICES
builds:
- id: amld
main: ./cmd/amld
binary: amld
flags:
- -trimpath
tags:
- embedui
ldflags:
- -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm64
archives:
- id: amld
builds: [amld]
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
format_overrides:
- goos: windows
format: zip
files:
- LICENSE*
- README*
- THIRD-PARTY-NOTICES
checksum:
name_template: checksums.txt
sboms:
- artifacts: archive
snapshot:
version_template: "{{ incpatch .Version }}-next"
changelog:
use: github
sort: asc
release:
draft: false
prerelease: auto
mode: append