Skip to content

Commit 23fddcf

Browse files
[8.19](backport #4912) Convert Makefile to magefile.go (#4981)
* Convert Makefile to magefile.go (#4912) Reimplement Makefile targets in mage. Change buildkite pipeline to use mage. Change Dockerfile* to use mage. (cherry picked from commit db5f46b) # Conflicts: # Dockerfile.build # Dockerfile.fips # Makefile # NOTICE.txt # README.md # dev-tools/go.mod # dev-tools/go.sum # docs/developers-guide.md # docs/docker-images.md * Clean up backport * Delete .terraform.lock.hcl * Fix check:ci * Fix imports --------- Co-authored-by: Michel Laterman <82832767+michel-laterman@users.noreply.github.com> Co-authored-by: michel-laterman <michel.laterman@elastic.co>
1 parent 1634378 commit 23fddcf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+14455
-17725
lines changed

.buildkite/pipeline.yml

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22

33
env:
44
DOCKER_COMPOSE_VERSION: "1.25.5"
5-
DOCKER_REGISTRY: "docker.elastic.co"
6-
DOCKER_IMAGE: "${DOCKER_REGISTRY}/observability-ci/fleet-server" # needs to rename for rollback
7-
DOCKER_IMAGE_SHA_TAG: "git-${BUILDKITE_COMMIT:0:12}" # needs to rename for rollback, should be "git-${BUILDKITE_COMMIT:0:12}"
8-
DOCKER_IMAGE_LATEST_TAG: "latest" # needs to rename for rollback
9-
DOCKER_IMAGE_GIT_TAG: "${BUILDKITE_BRANCH}" # needs to rename for rollback
10-
GO_AGENT_IMAGE: "golang:${GO_VERSION}"
115
TERRAFORM_VERSION: "1.6.4"
126

137
steps:
@@ -16,19 +10,15 @@ steps:
1610
steps:
1711
- label: ":white_check_mark: Run check-ci"
1812
key: check-ci
19-
command: "make check-ci"
13+
command: ".buildkite/scripts/check_ci.sh"
2014
agents:
21-
image: "${GO_AGENT_IMAGE}"
22-
cpu: "8"
23-
memory: "4G"
15+
provider: "gcp"
2416

2517
- label: ":building_construction: Run local build"
2618
key: make-local
27-
command: "make local"
19+
command: ".buildkite/scripts/local_build.sh"
2820
agents:
29-
image: "${GO_AGENT_IMAGE}"
30-
cpu: "8"
31-
memory: "4G"
21+
provider: "gcp"
3222

3323
- label: ":building_construction: Run local build: MacOS"
3424
key: make-local-macos
@@ -43,6 +33,8 @@ steps:
4333
- label: "Run go benchmark for PR branch"
4434
key: "go-benchmark-pr"
4535
command: ".buildkite/scripts/run_benchmark.sh pr"
36+
env:
37+
BENCHMARK_ARGS: "-count=8 -benchmem"
4638
artifact_paths:
4739
- build/next.out
4840
- build/next.stat
@@ -51,8 +43,11 @@ steps:
5143
machineType: "c2-standard-8"
5244

5345
- label: "Run go benchmark for ${BUILDKITE_PULL_REQUEST_BASE_BRANCH}"
46+
skip: true # FIXME: Temporarily disabled until mage is on main
5447
key: "go-benchmark-base"
5548
command: ".buildkite/scripts/run_benchmark.sh base"
49+
env:
50+
BENCHMARK_ARGS: "-count=8 -benchmem"
5651
artifact_paths:
5752
- build/base.out
5853
- build/base.stat
@@ -61,6 +56,7 @@ steps:
6156
machineType: "c2-standard-8"
6257

6358
- label: "Compare results"
59+
skip: true # FIXME: Temporarily disabled until mage is on main
6460
key: "go-benchmark-compare"
6561
command: ".buildkite/scripts/run_benchmark.sh compare"
6662
artifact_paths:
@@ -100,10 +96,9 @@ steps:
10096

10197
- label: ":smartbear-testexecute: Run fips140=only unit tests"
10298
key: unit-test-fips140-only
103-
command: ".buildkite/scripts/unit_test.sh"
99+
command: ".buildkite/scripts/unit_test_fipsonly.sh"
104100
env:
105101
FIPS: "true"
106-
GODEBUG: "fips140=only"
107102
agents:
108103
provider: "gcp"
109104
artifact_paths:
@@ -137,23 +132,6 @@ steps:
137132
- build/*.xml
138133
- build/e2e-coverage.out
139134

140-
- label: "FIPS E2E Test"
141-
key: "fips-e2e-test"
142-
env:
143-
FIPS: true
144-
command: ".buildkite/scripts/e2e_test.sh"
145-
agents:
146-
provider: "gcp"
147-
artifact_paths:
148-
- build/*.xml
149-
- build/e2e-coverage.out
150-
plugins:
151-
- test-collector#v1.10.2:
152-
files: "build/test-*.xml"
153-
format: "junit"
154-
branches: "main"
155-
debug: true
156-
157135
- label: ":junit: Junit annotate"
158136
plugins:
159137
- junit-annotate#v2.4.1:
@@ -189,6 +167,13 @@ steps:
189167

190168
- label: ":gcloud: Cloud e2e Test"
191169
key: "cloud-e2e-test"
170+
env:
171+
DOCKER_REGISTRY: "docker.elastic.co"
172+
DOCKER_IMAGE: "docker.elastic.co/beats-ci/elastic-agent-cloud-fleet"
173+
DOCKER_IMAGE_TAG: "pr-${BUILDKITE_PULL_REQUEST}-${BUILDKITE_COMMIT:0:12}"
174+
SNAPSHOT: "true"
175+
PLATFORMS: "linux/amd64"
176+
TF_VAR_pull_request: "${BUILDKITE_PULL_REQUEST}"
192177
command: ".buildkite/scripts/cloud_e2e_test.sh"
193178
agents:
194179
provider: "gcp"
@@ -204,6 +189,12 @@ steps:
204189
- label: ":docker: Publish docker image"
205190
key: "publish"
206191
command: ".buildkite/scripts/build_push_docker_image.sh"
192+
env:
193+
DOCKER_REGISTRY: "docker.elastic.co"
194+
DOCKER_IMAGE: "docker.elastic.co/observability-ci/fleet-server" # needs to rename for rollback
195+
DOCKER_IMAGE_SHA_TAG: "git-${BUILDKITE_COMMIT:0:12}" # needs to rename for rollback, should be "git-${BUILDKITE_COMMIT:0:12}"
196+
DOCKER_IMAGE_LATEST_TAG: "latest" # needs to rename for rollback
197+
DOCKER_IMAGE_GIT_TAG: "${BUILDKITE_BRANCH}" # needs to rename for rollback
207198
if: "build.env('BUILDKITE_PULL_REQUEST') == 'false' && build.env('BUILDKITE_BRANCH') == 'main'"
208199
agents:
209200
provider: "gcp"

.buildkite/scripts/build_push_docker_image.sh

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,20 @@ set -euo pipefail
44

55
source .buildkite/scripts/common.sh
66

7+
add_bin_path
8+
9+
with_go
10+
11+
with_mage
12+
713
echo "Building the docker image..."
814
if ! docker pull -q ${DOCKER_IMAGE}:${DOCKER_IMAGE_SHA_TAG} 2> /dev/null; then
915
DOCKER_IMAGE_TAG="${DOCKER_IMAGE_SHA_TAG}"
10-
DOCKER_IMAGE=${DOCKER_IMAGE} DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG} make build-and-push-docker
16+
DOCKER_IMAGE=${DOCKER_IMAGE} DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG} mage docker:image docker:push
1117
fi
1218

1319
if [[ "${DOCKER_IMAGE_GIT_TAG}" == "main" ]]; then
14-
DOCKER_IMAGE=${DOCKER_IMAGE} DOCKER_IMAGE_TAG="${DOCKER_IMAGE_LATEST_TAG}" make build-and-push-docker
20+
DOCKER_IMAGE=${DOCKER_IMAGE} DOCKER_IMAGE_TAG="${DOCKER_IMAGE_LATEST_TAG}" mage docker:image docker:push
1521
elif [[ ${BUILDKITE_PULL_REQUEST} == "false" ]]; then
16-
DOCKER_IMAGE=${DOCKER_IMAGE} DOCKER_IMAGE_TAG="${DOCKER_IMAGE_GIT_TAG}" make build-and-push-docker
22+
DOCKER_IMAGE=${DOCKER_IMAGE} DOCKER_IMAGE_TAG="${DOCKER_IMAGE_GIT_TAG}" mage docker:image docker:push
1723
fi

.buildkite/scripts/check_ci.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
source .buildkite/scripts/common.sh
6+
7+
add_bin_path
8+
9+
with_go
10+
11+
with_mage
12+
13+
mage check:ci

.buildkite/scripts/cloud_e2e_test.sh

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,37 @@ with_Terraform
1212

1313
with_docker_compose
1414

15-
USER=fleetserverci make test-cloude2e
15+
with_mage
16+
17+
cleanup() {
18+
r=$?
19+
20+
if [ -f dev-tools/cloud/terraform/.terraform.lock.hcl ] ; then
21+
echo "--- Deployment detected, running cleanup."
22+
mage test:cloudE2EDown
23+
else
24+
echo "--- No deployment detected, skipping cleanup."
25+
fi
26+
exit $r
27+
}
28+
trap cleanup EXIT INT TERM
29+
30+
USER=fleetserverci mage docker:cover docker:customAgentImage docker:push test:cloudE2EUp
31+
FLEET_SERVER_URL=$(terraform output --raw --state=dev-tools/cloud/terraform/terraform.tfstate fleet_url)
32+
echo "Fleet server: \"${FLEET_SERVER_URL}\""
33+
echo "Deployment ID: $(terraform output --raw --state=dev-tools/cloud/terraform/terraform.tfstate deployment_id)"
34+
35+
if [[ "${FLEET_SERVER_URL}" == "" ]]; then
36+
message="FLEET_SERVER_URL is empty, cloud e2e tests cannot be executed"
37+
if [[ "${CI}" == "true" ]]; then
38+
buildkite-agent annotate \
39+
"${message}" \
40+
--context "ctx-cloude2e-test" \
41+
--style "error"
42+
fi
43+
echo "${message}"
44+
exit 0
45+
fi
46+
47+
echo "--- Trigger cloud E2E test"
48+
mage test:cloudE2ERun

.buildkite/scripts/common.sh

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ with_msft_go() {
5555
echo "Setting up microsoft/go"
5656
create_workspace
5757
check_platform_architeture
58-
MSFT_DOWNLOAD_URL=https://aka.ms/golang/release/latest/go$(cat .go-version)-1.${platform_type}-${arch_type}.tar.gz
58+
MSFT_DOWNLOAD_URL=https://aka.ms/golang/release/latest/go$(cat .go-version).${platform_type}-${arch_type}.tar.gz
5959
retry 5 $(curl -sL -o - $MSFT_DOWNLOAD_URL | tar -xz -f - -C ${WORKSPACE})
6060
export PATH="${PATH}:${WORKSPACE}/go/bin"
6161
go version
@@ -148,17 +148,11 @@ download_mbp_packages_from_gcp_bucket() {
148148
}
149149

150150
with_mage() {
151-
local install_packages=(
152-
"github.com/magefile/mage"
153-
"github.com/elastic/go-licenser"
154-
"golang.org/x/tools/cmd/goimports"
155-
"github.com/jstemmer/go-junit-report"
156-
"gotest.tools/gotestsum"
157-
)
158151
create_workspace
159-
for pkg in "${install_packages[@]}"; do
160-
go install "${pkg}@latest"
161-
done
152+
go install github.com/magefile/mage # uses go.mod implicitly
153+
mage -clean
154+
mage -version
155+
which mage
162156
}
163157

164158
cleanup() {

.buildkite/scripts/dra_release.sh

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ set -euo pipefail
44

55
source .buildkite/scripts/common.sh
66

7+
add_bin_path
8+
9+
with_go
10+
11+
with_mage
12+
713
FOLDER_PATH="build/distributions"
814
BASE_DIR="${WORKSPACE}/${FOLDER_PATH}"
915
DRA_OUTPUT="release-manager.out"
@@ -12,7 +18,7 @@ export TYPE=${1}
1218
# DRA_BRANCH can be used for manually testing packaging with PRs
1319
# e.g. define `DRA_BRANCH="main"` under Options/Environment Variables in the Buildkite UI after clicking new Build
1420
export BRANCH="${DRA_BRANCH:="${BUILDKITE_BRANCH:=""}"}"
15-
export VERSION="$(make get-version)"
21+
export VERSION="$(mage getVersion)"
1622

1723
if [[ "${VERSION}" == *"-SNAPSHOT"* || "${VERSION}" == "" ]]; then
1824
echo "The 'version' parameter is required and it cannot contain the suffix '-SNAPSHOT'."
@@ -24,14 +30,7 @@ if [[ "${PROJECT}" == "" ]]; then
2430
exit 1
2531
fi
2632

27-
add_bin_path
28-
2933
download_mbp_packages_from_gcp_bucket "${FOLDER_PATH}" "${TYPE}"
30-
31-
with_go
32-
33-
with_mage
34-
3534
export RM_VERSION="${VERSION}"
3635

3736
if [[ ${TYPE} == "snapshot" ]]; then

.buildkite/scripts/e2e_test.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@ with_go
1010

1111
with_docker_compose
1212

13+
with_mage
14+
1315
echo "Starting the E2E tests..."
14-
make test-e2e junit-report
16+
mage test:e2e test:junitReport

.buildkite/scripts/integration_test.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@ with_go
1010

1111
with_docker_compose
1212

13+
with_mage
14+
1315
echo "Starting the integration tests..."
14-
make test-int junit-report
16+
mage test:integration test:junitReport

.buildkite/scripts/local_build.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ else
1111
with_go
1212
fi
1313

14-
make local
14+
with_mage
15+
16+
mage build:local

.buildkite/scripts/package.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ with_mage
3535
case "${TYPE}" in
3636
"snapshot")
3737
export SNAPSHOT=true
38-
make release
38+
mage build:release
3939
;;
4040
"staging")
41-
make release
41+
mage build:release
4242
;;
4343
*)
4444
echo "The option is unsupported yet"

0 commit comments

Comments
 (0)