Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TEST: bump go version to 1.23 #42960

Closed
wants to merge 17 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .buildkite/metricbeat/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,9 @@ steps:

- label: ":ubuntu: Metricbeat: Crosscompile"
key: "mandatory-cross-compile"
command: "make -C metricbeat crosscompile"
command: |
source .buildkite/scripts/qemu.sh
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

crosscompile uses the golang-crossbuild hence we need to use qemu

make -C metricbeat crosscompile
retry:
automatic:
- limit: 1
Expand Down
9 changes: 2 additions & 7 deletions .buildkite/scripts/packaging/packaging.sh
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
#!/usr/bin/env bash
#
# Centralise the mage package for a given beat in Buildkite.
# It enables multi-arch builds to avoid the exec format errors when
# attempting to build arm64 inside arm64 workers.
# For further details, see https://github.com/elastic/elastic-agent/pull/6948
# and https://github.com/elastic/golang-crossbuild/pull/507
#

set -ueo pipefail


BEAT_DIR=${1:?-"Error: Beat directory must be specified."}

#Use newer multiarch support for packaging
docker run --privileged --rm tonistiigi/binfmt:master --install all
# shellcheck source=/dev/null
source .buildkite/scripts/qemu.sh

cd $BEAT_DIR
mage package
19 changes: 19 additions & 0 deletions .buildkite/scripts/qemu.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Specific script that can be used in other places

#
# It enables multi-arch builds to avoid the exec format errors when
# attempting to build arm64 inside arm64 workers.
#
# For further details, see https://github.com/elastic/elastic-agent/pull/6948
# and https://github.com/elastic/golang-crossbuild/pull/507
#
set -euo pipefail

if [[ "$(uname -m)" == "aarch64" || "$(uname -m)" == "arm64" ]]; then
echo "Skipping qemu installation on arm64 worker"
else
BINFMT_IMAGE="tonistiigi/binfmt:qemu-v9.2.2"

# Make sure to uninstall first to avoid conflicts
docker run --privileged --rm "$BINFMT_IMAGE" --uninstall qemu-*
docker run --privileged --rm "$BINFMT_IMAGE" --install all
fi
1 change: 1 addition & 0 deletions .buildkite/x-pack/pipeline.xpack.dockerlogbeat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ steps:
- label: ":ubuntu: x-pack/dockerlogbeat: Ubuntu x86_64 Unit Tests"
key: "mandatory-linux-unit-test"
command: |
source .buildkite/scripts/qemu.sh
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unitTest uses the golang-crossbuild hence we need to use qemu

cd x-pack/dockerlogbeat
mage build unitTest
retry:
Expand Down
2 changes: 1 addition & 1 deletion .go-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.22.12
1.23.6
12 changes: 0 additions & 12 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,10 +159,6 @@ linters-settings:
- github.com/meraki/dashboard-api-go/v3
- github.com/snowflakedb/gosnowflake

gosimple:
# Select the Go version to target. The default is '1.13'.
go: "1.22.12"

nakedret:
# make an issue if func has more lines of code than this setting and it has naked returns; default is 30
max-func-lines: 0
Expand All @@ -178,21 +174,13 @@ linters-settings:
require-specific: false

staticcheck:
# Select the Go version to target. The default is '1.13'.
go: "1.22.12"
checks: ["all"]

stylecheck:
# Select the Go version to target. The default is '1.13'.
go: "1.22.12"
# Disabled:
# ST1005: error strings should not be capitalized
checks: ["all", "-ST1005"]

unused:
# Select the Go version to target. The default is '1.13'.
go: "1.22.12"

gosec:
excludes:
- G306 # Expect WriteFile permissions to be 0600 or less
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.next.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ otherwise no tag is added. {issue}42208[42208] {pull}42403[42403]
- The environment variable `BEATS_ADD_CLOUD_METADATA_PROVIDERS` overrides configured/default `add_cloud_metadata` providers {pull}38669[38669]
- When running under Elastic-Agent Kafka output allows dynamic topic in `topic` field {pull}40415[40415]
- The script processor has a new configuration option that only uses the cached javascript sessions and prevents the creation of new javascript sessions.
- Update to Go 1.22.12. {pull}42681[42681]
- Update to Go 1.23.6. {pull}42705[42705]
- Replace Ubuntu 20.04 with 24.04 for Docker base images {issue}40743[40743] {pull}40942[40942]
- Reduce memory consumption of k8s autodiscovery and the add_kubernetes_metadata processor when Deployment metadata is enabled
- Add `lowercase` processor. {issue}22254[22254] {pull}41424[41424]
Expand Down
2 changes: 1 addition & 1 deletion auditbeat/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.22.12
FROM golang:1.23.6

RUN \
apt-get update \
Expand Down
2 changes: 1 addition & 1 deletion dev-tools/kubernetes/filebeat/Dockerfile.debug
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.22.12 as builder
FROM golang:1.23.6 as builder

ENV PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/go/bin:/usr/local/go/bin

Expand Down
2 changes: 1 addition & 1 deletion dev-tools/kubernetes/heartbeat/Dockerfile.debug
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.22.12 as builder
FROM golang:1.23.6 as builder

ENV PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/go/bin:/usr/local/go/bin

Expand Down
2 changes: 1 addition & 1 deletion dev-tools/kubernetes/metricbeat/Dockerfile.debug
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.22.12 as builder
FROM golang:1.23.6 as builder

ENV PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/go/bin:/usr/local/go/bin

Expand Down
2 changes: 1 addition & 1 deletion dev-tools/mage/crossbuild.go
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ func CrossBuildImage(platform string) (string, error) {
case platform == "darwin/universal":
tagSuffix = "darwin-arm64-debian11"
case platform == "linux/arm64":
tagSuffix = "arm"
tagSuffix = "base-arm-debian9"
case platform == "linux/armv5":
tagSuffix = "armel"
case platform == "linux/armv6":
Expand Down
4 changes: 2 additions & 2 deletions dev-tools/mage/settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@
fpmVersion = "1.13.1"

// Docker images. See https://github.com/elastic/golang-crossbuild.
beatsFPMImage = "docker.elastic.co/beats-dev/fpm"
beatsFPMImage = "docker.elastic.co/observability-ci/fpm"
// BeatsCrossBuildImage is the image used for crossbuilding Beats.
BeatsCrossBuildImage = "docker.elastic.co/beats-dev/golang-crossbuild"
BeatsCrossBuildImage = "docker.elastic.co/observability-ci/golang-crossbuild"
Comment on lines -44 to +46
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This won't be needed as soon as we merge elastic/golang-crossbuild#527


elasticBeatsImportPath = "github.com/elastic/beats"

Expand Down Expand Up @@ -452,7 +452,7 @@

panic(fmt.Errorf("magefile must call devtools.SetBuildVariableSources() "+
"because it is not an elastic beat (repo=%+v)", repo.RootImportPath))
}

Check failure on line 455 in dev-tools/mage/settings.go

View workflow job for this annotation

GitHub Actions / lint (darwin)

missing return (typecheck)

// BuildVariableSources is used to explicitly define what files contain build
// variables and how to parse the values from that file. This removes ambiguity
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/elastic/beats/v7

go 1.22.12
go 1.23.6

require (
cloud.google.com/go/bigquery v1.65.0
Expand Down
2 changes: 1 addition & 1 deletion heartbeat/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.22.12
FROM golang:1.23.6

RUN \
apt-get update \
Expand Down
2 changes: 1 addition & 1 deletion libbeat/docs/version.asciidoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
:stack-version: 9.1.0
:doc-branch: main
:go-version: 1.22.10
:go-version: 1.23.6
:release-state: unreleased
:python: 3.7
:docker: 1.12
Expand Down
2 changes: 1 addition & 1 deletion metricbeat/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.22.12
FROM golang:1.23.6
COPY --from=docker:26.0.0-alpine3.19 /usr/local/bin/docker /usr/local/bin/

RUN \
Expand Down
2 changes: 1 addition & 1 deletion metricbeat/module/http/_meta/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.22.12
FROM golang:1.23.6

COPY test/main.go main.go

Expand Down
2 changes: 1 addition & 1 deletion metricbeat/module/nats/_meta/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ ARG NATS_VERSION=2.0.4
FROM nats:$NATS_VERSION

# build stage
FROM golang:1.22.12 AS build-env
FROM golang:1.23.6 AS build-env
RUN apt-get install git mercurial gcc
RUN git clone https://github.com/nats-io/nats.go.git /nats-go
RUN cd /nats-go/examples/nats-bench && git checkout tags/v1.10.0 && go build .
Expand Down
2 changes: 1 addition & 1 deletion metricbeat/module/vsphere/_meta/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG VSPHERE_GOLANG_VERSION
FROM golang:1.22.12
FROM golang:1.23.6

RUN apt-get install curl git
RUN go install github.com/vmware/govmomi/vcsim@v0.30.4
Expand Down
2 changes: 1 addition & 1 deletion packetbeat/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.22.12
FROM golang:1.23.6

RUN \
apt-get update \
Expand Down
2 changes: 1 addition & 1 deletion x-pack/metricbeat/module/stan/_meta/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ ARG STAN_VERSION=0.15.1
FROM nats-streaming:$STAN_VERSION

# build stage
FROM golang:1.22.12 AS build-env
FROM golang:1.23.6 AS build-env
RUN apt-get install git mercurial gcc
RUN git clone https://github.com/nats-io/stan.go.git /stan-go
RUN cd /stan-go/examples/stan-bench && git checkout tags/v0.5.2 && go build .
Expand Down
Loading