Quellcode durchsuchen

Docker: allow setting BUILD_VERSION as a build argument (#2736)

* Docker: allow setting BUILD_VERSION as a build argument
* CI: don't attempt to publish docker images outside of crowdecurity org
* use go 1.21.6 for docker and windows too
mmetc vor 1 Jahr
Ursprung
Commit
03bb194d2c

+ 1 - 0
.github/workflows/publish_docker-image_on_master-debian.yml

@@ -19,6 +19,7 @@ jobs:
   push_to_registry:
     name: Push Debian Docker image to Docker Hub
     runs-on: ubuntu-latest
+    if: ${{ github.repository_owner == 'crowdsecurity' }}
     steps:
 
       - name: Check out the repo

+ 1 - 0
.github/workflows/publish_docker-image_on_master.yml

@@ -19,6 +19,7 @@ jobs:
   push_to_registry:
     name: Push Docker image to Docker Hub
     runs-on: ubuntu-latest
+    if: ${{ github.repository_owner == 'crowdsecurity' }}
     steps:
 
       - name: Check out the repo

+ 3 - 1
Dockerfile

@@ -1,5 +1,6 @@
 # vim: set ft=dockerfile:
-ARG GOVERSION=1.21.5
+ARG GOVERSION=1.21.6
+ARG BUILD_VERSION
 
 FROM golang:${GOVERSION}-alpine3.18 AS build
 
@@ -7,6 +8,7 @@ WORKDIR /go/src/crowdsec
 
 # We like to choose the release of re2 to use, and Alpine does not ship a static version anyway.
 ENV RE2_VERSION=2023-03-01
+ENV BUILD_VERSION=${BUILD_VERSION}
 
 # wizard.sh requires GNU coreutils
 RUN apk add --no-cache git g++ gcc libc-dev make bash gettext binutils-gold coreutils pkgconfig && \

+ 3 - 1
Dockerfile.debian

@@ -1,5 +1,6 @@
 # vim: set ft=dockerfile:
-ARG GOVERSION=1.21.5
+ARG GOVERSION=1.21.6
+ARG BUILD_VERSION
 
 FROM golang:${GOVERSION}-bookworm AS build
 
@@ -10,6 +11,7 @@ ENV DEBCONF_NOWARNINGS="yes"
 
 # We like to choose the release of re2 to use, the debian version is usually older.
 ENV RE2_VERSION=2023-03-01
+ENV BUILD_VERSION=${BUILD_VERSION}
 
 # wizard.sh requires GNU coreutils
 RUN apt-get update && \

+ 2 - 2
azure-pipelines.yml

@@ -25,9 +25,9 @@ stages:
               custom: 'tool'
               arguments: 'install --global SignClient --version 1.3.155'
           - task: GoTool@0
-            displayName: "Install Go 1.20"
+            displayName: "Install Go"
             inputs:
-                version: '1.21.5'
+                version: '1.21.6'
 
           - pwsh: |
               choco install -y make

+ 5 - 1
mk/platform/unix_common.mk

@@ -8,7 +8,11 @@ MKDIR=mkdir -p
 GOOS ?= $(shell go env GOOS)
 
 # Current versioning information from env
-BUILD_VERSION?=$(shell git describe --tags)
+# The $(or) is used to ignore an empty BUILD_VERSION when it's an envvar,
+# like inside a docker build: docker build --build-arg BUILD_VERSION=1.2.3
+# as opposed to a make parameter: make BUILD_VERSION=1.2.3
+BUILD_VERSION:=$(or $(BUILD_VERSION),$(shell git describe --tags --dirty))
+
 BUILD_TIMESTAMP=$(shell date +%F"_"%T)
 DEFAULT_CONFIGDIR?=/etc/crowdsec
 DEFAULT_DATADIR?=/var/lib/crowdsec/data