Skip to content

Commit db5f46b

Browse files
Convert Makefile to magefile.go (#4912)
Reimplement Makefile targets in mage. Change buildkite pipeline to use mage. Change Dockerfile* to use mage.
1 parent 7fa1283 commit db5f46b

Some content is hidden

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

57 files changed

+13669
-17688
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:
@@ -31,19 +25,15 @@ steps:
3125
steps:
3226
- label: ":white_check_mark: Run check-ci"
3327
key: check-ci
34-
command: "make check-ci"
28+
command: ".buildkite/scripts/check_ci.sh"
3529
agents:
36-
image: "${GO_AGENT_IMAGE}"
37-
cpu: "8"
38-
memory: "4G"
30+
provider: "gcp"
3931

4032
- label: ":building_construction: Run local build"
4133
key: make-local
42-
command: "make local"
34+
command: ".buildkite/scripts/local_build.sh"
4335
agents:
44-
image: "${GO_AGENT_IMAGE}"
45-
cpu: "8"
46-
memory: "4G"
36+
provider: "gcp"
4737

4838
- label: ":building_construction: Run local build: MacOS"
4939
key: make-local-macos
@@ -58,6 +48,8 @@ steps:
5848
- label: "Run go benchmark for PR branch"
5949
key: "go-benchmark-pr"
6050
command: ".buildkite/scripts/run_benchmark.sh pr"
51+
env:
52+
BENCHMARK_ARGS: "-count=8 -benchmem"
6153
artifact_paths:
6254
- build/next.out
6355
- build/next.stat
@@ -66,8 +58,11 @@ steps:
6658
machineType: "c2-standard-8"
6759

6860
- label: "Run go benchmark for ${BUILDKITE_PULL_REQUEST_BASE_BRANCH}"
61+
skip: true # FIXME: Temporarily disabled until mage is on main
6962
key: "go-benchmark-base"
7063
command: ".buildkite/scripts/run_benchmark.sh base"
64+
env:
65+
BENCHMARK_ARGS: "-count=8 -benchmem"
7166
artifact_paths:
7267
- build/base.out
7368
- build/base.stat
@@ -76,6 +71,7 @@ steps:
7671
machineType: "c2-standard-8"
7772

7873
- label: "Compare results"
74+
skip: true # FIXME: Temporarily disabled until mage is on main
7975
key: "go-benchmark-compare"
8076
command: ".buildkite/scripts/run_benchmark.sh compare"
8177
artifact_paths:
@@ -115,10 +111,9 @@ steps:
115111

116112
- label: ":smartbear-testexecute: Run fips140=only unit tests"
117113
key: unit-test-fips140-only
118-
command: ".buildkite/scripts/unit_test.sh"
114+
command: ".buildkite/scripts/unit_test_fipsonly.sh"
119115
env:
120116
FIPS: "true"
121-
GODEBUG: "fips140=only"
122117
agents:
123118
provider: "gcp"
124119
artifact_paths:
@@ -164,23 +159,6 @@ steps:
164159
branches: "main"
165160
debug: true
166161

167-
- label: "FIPS E2E Test"
168-
key: "fips-e2e-test"
169-
env:
170-
FIPS: true
171-
command: ".buildkite/scripts/e2e_test.sh"
172-
agents:
173-
provider: "gcp"
174-
artifact_paths:
175-
- build/*.xml
176-
- build/e2e-coverage.out
177-
plugins:
178-
- test-collector#v1.10.2:
179-
files: "build/test-*.xml"
180-
format: "junit"
181-
branches: "main"
182-
debug: true
183-
184162
- label: ":junit: Junit annotate"
185163
plugins:
186164
- junit-annotate#v2.4.1:
@@ -216,6 +194,13 @@ steps:
216194

217195
- label: ":gcloud: Cloud e2e Test"
218196
key: "cloud-e2e-test"
197+
env:
198+
DOCKER_REGISTRY: "docker.elastic.co"
199+
DOCKER_IMAGE: "docker.elastic.co/beats-ci/elastic-agent-cloud-fleet"
200+
DOCKER_IMAGE_TAG: "pr-${BUILDKITE_PULL_REQUEST}-${BUILDKITE_COMMIT:0:12}"
201+
SNAPSHOT: "true"
202+
PLATFORMS: "linux/amd64"
203+
TF_VAR_pull_request: "${BUILDKITE_PULL_REQUEST}"
219204
command: ".buildkite/scripts/cloud_e2e_test.sh"
220205
agents:
221206
provider: "gcp"
@@ -231,6 +216,12 @@ steps:
231216
- label: ":docker: Publish docker image"
232217
key: "publish"
233218
command: ".buildkite/scripts/build_push_docker_image.sh"
219+
env:
220+
DOCKER_REGISTRY: "docker.elastic.co"
221+
DOCKER_IMAGE: "docker.elastic.co/observability-ci/fleet-server" # needs to rename for rollback
222+
DOCKER_IMAGE_SHA_TAG: "git-${BUILDKITE_COMMIT:0:12}" # needs to rename for rollback, should be "git-${BUILDKITE_COMMIT:0:12}"
223+
DOCKER_IMAGE_LATEST_TAG: "latest" # needs to rename for rollback
224+
DOCKER_IMAGE_GIT_TAG: "${BUILDKITE_BRANCH}" # needs to rename for rollback
234225
if: "build.env('BUILDKITE_PULL_REQUEST') == 'false' && build.env('BUILDKITE_BRANCH') == 'main'"
235226
agents:
236227
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)