diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index ee5f3bd..5618d14 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -60,6 +60,8 @@ jobs: push: ${{ env.IS_PUBLISH == 'true' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + build-args: | + BUILD_VERSION=${{ github.ref_name }}-${{ github.sha }} # arm64 via QEMU is slow, so only build it on main branch or tags (not workflow_dispatch) platforms: ${{ env.IS_ARM64_BUILD == 'true' && 'linux/amd64,linux/arm64' || 'linux/amd64' }} cache-from: type=local,src=/tmp/.buildx-cache diff --git a/agent/server/http/axon_handler.go b/agent/server/http/axon_handler.go index 40ab093..414b3c3 100644 --- a/agent/server/http/axon_handler.go +++ b/agent/server/http/axon_handler.go @@ -90,6 +90,13 @@ func (h *axonHandler) returnJson(obj interface{}, w http.ResponseWriter) { w.Write(json) } +func getBuildVersion() string { + if v := os.Getenv("AXON_BUILD_VERSION"); v != "" { + return v + } + return "dev" +} + func (h *axonHandler) healthcheck(w http.ResponseWriter, r *http.Request) { result := map[string]interface{}{ "OK": true, @@ -104,11 +111,13 @@ func (h *axonHandler) info(w http.ResponseWriter, r *http.Request) { Alias string `json:"alias"` Handlers []string `json:"handlers"` InstanceID string `json:"instance_id"` + BuildVersion string `json:"build_version"` }{ InstanceID: h.config.InstanceId, Integration: h.config.Integration, Alias: h.config.IntegrationAlias, Handlers: []string{}, + BuildVersion: getBuildVersion(), } handlers, err := h.fetchHandlers(r) diff --git a/docker/Dockerfile b/docker/Dockerfile index afe2dc6..c539c47 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -70,6 +70,8 @@ COPY docker/entrypoint.sh /agent/entrypoint.sh COPY docker/app_entrypoint.sh /app/app_entrypoint.sh COPY docker/scripts /agent/scripts +ARG BUILD_VERSION=dev +ENV AXON_BUILD_VERSION=${BUILD_VERSION} ENV CORTEX_API_BASE_URL=https://api.getcortexapp.com ENV HANDLER_HISTORY_PATH=/var/log/axon/history ENV NODE_OPTIONS=--use-openssl-ca