mirror of
https://github.com/kerberos-io/agent.git
synced 2026-08-23 15:08:32 +00:00
Add MoQ devcontainer verification
Switch devcontainers to Debian Trixie for the required glibc version and add automated MoQ package tests, Agent linking, and version checks through a script and VS Code task.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
FROM mcr.microsoft.com/devcontainers/go:1.24-bookworm
|
FROM mcr.microsoft.com/devcontainers/go:1.24-trixie
|
||||||
|
|
||||||
# Install node environment
|
# Install node environment
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||||
// README at: https://github.com/devcontainers/templates/tree/main/src/python
|
// README at: https://github.com/devcontainers/templates/tree/main/src/python
|
||||||
{
|
{
|
||||||
"name": "go:1.24-bookworm",
|
"name": "go:1.24-trixie",
|
||||||
"runArgs": [
|
"runArgs": [
|
||||||
"--name=agent",
|
"--name=agent",
|
||||||
"--network=host"
|
"--network=host"
|
||||||
@@ -20,5 +20,5 @@
|
|||||||
3000,
|
3000,
|
||||||
8080
|
8080
|
||||||
],
|
],
|
||||||
"postCreateCommand": "cd ui && yarn install && yarn build && cd ../machinery && go mod download"
|
"postCreateCommand": "cd ui && yarn install && yarn build && cd ../machinery && go mod download && bash ./verify-moq-devcontainer.sh"
|
||||||
}
|
}
|
||||||
14
.vscode/tasks.json
vendored
Normal file
14
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "agent: moq verify",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "bash ./verify-moq-devcontainer.sh",
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}/machinery"
|
||||||
|
},
|
||||||
|
"problemMatcher": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
11
README.md
11
README.md
@@ -443,6 +443,17 @@ The `/anon` relay route is intended for interoperability testing. Production
|
|||||||
deployments must set `AGENT_LIVE_MOQ_URL` to a short-lived, device-scoped
|
deployments must set `AGENT_LIVE_MOQ_URL` to a short-lived, device-scoped
|
||||||
publisher URL issued by Hub API.
|
publisher URL issued by Hub API.
|
||||||
|
|
||||||
|
To verify the native SDK in a development container, rebuild the Agent or shared
|
||||||
|
monorepo devcontainer so it uses the Trixie base, then run the VS Code task
|
||||||
|
`agent: moq verify`. The same check is available from a terminal:
|
||||||
|
|
||||||
|
cd machinery
|
||||||
|
bash ./verify-moq-devcontainer.sh
|
||||||
|
|
||||||
|
The check requires glibc 2.38 or newer, runs the tagged package tests, links the
|
||||||
|
complete Agent with `-tags moq`, and executes the resulting binary's version
|
||||||
|
command. Both devcontainers also run this check during their post-create setup.
|
||||||
|
|
||||||
## What is new?
|
## What is new?
|
||||||
|
|
||||||
This repository contains the next generation of Kerberos.io, **Kerberos Agent (v3)**, and is the successor of the machinery and web repositories. A switch in technologies and architecture has been made. This version is still under active development and can be followed on the [develop branch](https://github.com/kerberos-io/agent/tree/develop) and [project overview](https://github.com/kerberos-io/agent/projects/1).
|
This repository contains the next generation of Kerberos.io, **Kerberos Agent (v3)**, and is the successor of the machinery and web repositories. A switch in technologies and architecture has been made. This version is still under active development and can be followed on the [develop branch](https://github.com/kerberos-io/agent/tree/develop) and [project overview](https://github.com/kerberos-io/agent/projects/1).
|
||||||
|
|||||||
23
machinery/verify-moq-devcontainer.sh
Normal file
23
machinery/verify-moq-devcontainer.sh
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
required_glibc="2.38"
|
||||||
|
current_glibc="$(getconf GNU_LIBC_VERSION | awk '{print $2}')"
|
||||||
|
|
||||||
|
if ! dpkg --compare-versions "$current_glibc" ge "$required_glibc"; then
|
||||||
|
echo "MoQ requires glibc ${required_glibc}+; this container has ${current_glibc}." >&2
|
||||||
|
echo "Rebuild the devcontainer with the Trixie base, then run this check again." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "==> Testing MoQ packages (glibc ${current_glibc})"
|
||||||
|
GOWORK=off go test -tags moq ./src/cloud/livemoq ./src/cloud
|
||||||
|
|
||||||
|
binary="${TMPDIR:-/tmp}/agent-moq"
|
||||||
|
trap 'rm -f "$binary"' EXIT
|
||||||
|
|
||||||
|
echo "==> Linking the MoQ Agent"
|
||||||
|
GOWORK=off go build -tags moq -o "$binary" ./main.go
|
||||||
|
|
||||||
|
echo "==> Running the linked binary"
|
||||||
|
"$binary" -action version
|
||||||
Reference in New Issue
Block a user