llmgw-kb built for Windows, macOS and Linux in CI and attached to releases
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
ba5df90602
commit
ffab3c99e3
3 files changed
+25
No files matched your search
@@ -39,6 +39,14 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
run: go build ./...
|
run: go build ./...
|
||||||
|
|
||||||
|
# llmgw-kb runs on people's own machines, Windows included, which no
|
||||||
|
# test here runs on: building it for each catches a Unix-only call.
|
||||||
|
- name: Build llmgw-kb for every system
|
||||||
|
run: |
|
||||||
|
for target in windows/amd64 windows/arm64 darwin/amd64 darwin/arm64 linux/amd64 linux/arm64; do
|
||||||
|
CGO_ENABLED=0 GOOS="${target%/*}" GOARCH="${target#*/}" go build -o /dev/null ./cmd/llmgw-kb
|
||||||
|
done
|
||||||
|
|
||||||
# The Terraform provider is a module of its own, which ./... above does
|
# The Terraform provider is a module of its own, which ./... above does
|
||||||
# not reach. Its tests check its client against docs/admin-api.openapi.json,
|
# not reach. Its tests check its client against docs/admin-api.openapi.json,
|
||||||
# so a change to the admin API that breaks the provider fails here. The
|
# so a change to the admin API that breaks the provider fails here. The
|
||||||
|
|||||||
@@ -55,6 +55,21 @@ jobs:
|
|||||||
(cd dist && sha256sum "${name}" >> checksums.txt)
|
(cd dist && sha256sum "${name}" >> checksums.txt)
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# llmgw-kb, which people run on their own machines to put their
|
||||||
|
# documents into a knowledge base: Windows too, which llmgw itself
|
||||||
|
# does not build for.
|
||||||
|
for target in windows/amd64 windows/arm64 darwin/amd64 darwin/arm64 linux/amd64 linux/arm64; do
|
||||||
|
os="${target%/*}"; arch="${target#*/}"
|
||||||
|
ext=""; [ "$os" = windows ] && ext=".exe"
|
||||||
|
name="llmgw-kb-${version}-${os}-${arch}${ext}"
|
||||||
|
echo "building $name"
|
||||||
|
CGO_ENABLED=0 GOOS="$os" GOARCH="$arch" go build \
|
||||||
|
-trimpath \
|
||||||
|
-ldflags "-s -w -X gitea.mynodes.xyz/ilker/llmgw/internal/version.Version=${version}" \
|
||||||
|
-o "dist/${name}" ./cmd/llmgw-kb
|
||||||
|
(cd dist && sha256sum "${name}" >> checksums.txt)
|
||||||
|
done
|
||||||
|
|
||||||
# The reverse proxy configurations, so a release page carries
|
# The reverse proxy configurations, so a release page carries
|
||||||
# everything install.md asks for and the repository is not needed.
|
# everything install.md asks for and the repository is not needed.
|
||||||
for f in deploy/proxy/Caddyfile deploy/proxy/nginx.conf; do
|
for f in deploy/proxy/Caddyfile deploy/proxy/nginx.conf; do
|
||||||
@@ -91,6 +106,7 @@ jobs:
|
|||||||
# test the cross-compiled ones, which is why the native build is
|
# test the cross-compiled ones, which is why the native build is
|
||||||
# checked rather than assumed.
|
# checked rather than assumed.
|
||||||
./dist/llmgw-${version}-linux-amd64 --version
|
./dist/llmgw-${version}-linux-amd64 --version
|
||||||
|
./dist/llmgw-kb-${version}-linux-amd64 --version
|
||||||
cat dist/checksums.txt
|
cat dist/checksums.txt
|
||||||
|
|
||||||
# Signed, so a machine that trusts the key built into it installs
|
# Signed, so a machine that trusts the key built into it installs
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ LDFLAGS := -X '$(MODULE)/internal/version.Version=$(VERSION)'
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
go build -ldflags "$(LDFLAGS)" -o bin/llmgw ./cmd/llmgw
|
go build -ldflags "$(LDFLAGS)" -o bin/llmgw ./cmd/llmgw
|
||||||
|
go build -ldflags "$(LDFLAGS)" -o bin/llmgw-kb ./cmd/llmgw-kb
|
||||||
|
|
||||||
test:
|
test:
|
||||||
go test ./...
|
go test ./...
|
||||||
|
|||||||
Reference in new issue
Block a user