Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
oakrizan committed Oct 18, 2024
1 parent 50d3e6a commit 63ba671
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 68 deletions.
3 changes: 2 additions & 1 deletion .buildkite/hooks/pre-command
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ if [[ "$BUILDKITE_PIPELINE_SLUG" == "beats-xpack-packetbeat" && "$BUILDKITE_STEP
fi

if [[ "$BUILDKITE_PIPELINE_SLUG" == "beats-xpack-agentbeat" && "$BUILDKITE_STEP_KEY" == *"agentbeat-it"* ]]; then
AGENTBEAT_PATH=$(.buildkite/scripts/agentbeat/setup_agentbeat.py | tail -n 1)
out=$(.buildkite/scripts/agentbeat/setup_agentbeat.py)
AGENTBEAT_PATH=$($out | tail -n 1)
export AGENTBEAT_PATH
fi

Expand Down
73 changes: 43 additions & 30 deletions .buildkite/scripts/agentbeat/setup_agentbeat.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,26 @@
import tarfile

PATH = 'x-pack/agentbeat/build/distributions'
PLATFORMS = {
'windows': {
'x86_64': 'x86_64',
},
'linux': {
'x86_64': 'x86_64',
'arm64': 'arm64',
},
'darwin': {
'x86_64': 'x86_64',
'arm64': 'aarch64',
}
}


class Archive:
def __init__(self, os, arch, ext):
self.os = os
self.arch = arch
self.ext = ext


def log(msg):
Expand All @@ -18,57 +38,50 @@ def log_err(msg):
sys.stderr.flush()


def get_os() -> str:
return platform.system().lower()
def get_archive_params() -> Archive:
system = platform.system().lower()
log("\--- System platform: " + system)
machine = platform.machine().lower()
log("\--- Machine platform: " + machine)
arch = PLATFORMS.get(system, {}).get(machine)
ext = get_artifact_extension(system)

return Archive(system, arch, ext)

def get_arch() -> str:
arch = platform.machine().lower()

if arch == 'amd64':
return 'x86_64'
else:
if get_os() == 'darwin':
return 'aarch64'
else:
return arch


def get_artifact_extension(agent_os) -> str:
if agent_os == 'windows':
def get_artifact_extension(system) -> str:
if system == 'windows':
return 'zip'
else:
return 'tar.gz'


def get_artifact_pattern() -> str:
agent_os = get_os()
agent_arch = get_arch()
extension = get_artifact_extension(agent_os)
print('Artifact params: ' + agent_os + ' ' + agent_arch + ' ' + extension)
return f'{PATH}/agentbeat-*-{agent_os}-{agent_arch}.{extension}'
def get_artifact_pattern(archive_obj) -> str:
return f'{PATH}/agentbeat-*-{archive_obj.os}-{archive_obj.arch}.{archive_obj.ext}'


def download_agentbeat(pattern, path) -> str:
def download_agentbeat(archive_obj) -> str:
pattern = get_artifact_pattern(archive_obj)
try:
subprocess.run(
['buildkite-agent', 'artifact', 'download', pattern, '.',
'--build', '01929e98-0c83-471f-a61f-6be426fb86bb',
'--step', 'agentbeat-package-linux'],
check=True, stdout=sys.stdout, stderr=sys.stderr, text=True)

except subprocess.CalledProcessError:
exit(1)

return get_filename(path)
return get_full_filename()


def get_filename(path) -> str:
def get_full_filename() -> str:
try:
out = subprocess.run(
['ls', '-p', path],
['ls', '-p', PATH],
check=True, capture_output=True, text=True)
print("--- ls -p: " + out.stdout)
return out.stdout.strip()
filename = out.stdout.strip()
return filename
except subprocess.CalledProcessError:
exit(1)

Expand Down Expand Up @@ -109,10 +122,10 @@ def get_path_to_executable(filepath) -> str:
path = f'../../{match.group(1)}/agentbeat'
return path
else:
log_err("No agentbeat executable found")
log_err('No agentbeat executable found')
exit(1)

artifact_pattern = get_artifact_pattern()
archive = download_agentbeat(artifact_pattern, PATH)
archive_params = get_archive_params()
archive = download_agentbeat(archive_params)
extract_agentbeat(archive)
log(get_path_to_executable(archive))
74 changes: 37 additions & 37 deletions .buildkite/x-pack/pipeline.xpack.agentbeat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,39 +43,39 @@ steps:
key: "agentbeat-mandatory-tests"

steps:
- label: ":linux: Agentbeat packaging Linux"
key: "agentbeat-package-linux"
env:
PLATFORMS: "+all linux/amd64 linux/arm64 windows/amd64 darwin/amd64 darwin/arm64"
SNAPSHOT: true
command: |
set -euo pipefail
cd x-pack/agentbeat
mage package
artifact_paths:
- x-pack/agentbeat/build/distributions/**/*
- "x-pack/agentbeat/build/*.xml"
- "x-pack/agentbeat/build/*.json"
retry:
automatic:
- limit: 2
timeout_in_minutes: 60
agents:
provider: "gcp"
image: "${IMAGE_UBUNTU_X86_64}"
machineType: "${GCP_HI_PERF_MACHINE_TYPE}"
disk_size: 100
disk_type: "pd-ssd"
notify:
- github_commit_status:
context: "agentbeat: Packaging"
# - label: ":linux: Agentbeat packaging Linux"
# key: "agentbeat-package-linux"
# env:
# PLATFORMS: "+all linux/amd64 linux/arm64 windows/amd64 darwin/amd64 darwin/arm64"
# SNAPSHOT: true
# command: |
# set -euo pipefail
# cd x-pack/agentbeat
# mage package
# artifact_paths:
# - x-pack/agentbeat/build/distributions/**/*
# - "x-pack/agentbeat/build/*.xml"
# - "x-pack/agentbeat/build/*.json"
# retry:
# automatic:
# - limit: 2
# timeout_in_minutes: 60
# agents:
# provider: "gcp"
# image: "${IMAGE_UBUNTU_X86_64}"
# machineType: "${GCP_HI_PERF_MACHINE_TYPE}"
# disk_size: 100
# disk_type: "pd-ssd"
# notify:
# - github_commit_status:
# context: "agentbeat: Packaging"

- label: ":ubuntu: x-pack/agentbeat: Ubuntu x86_64 Spec tests"
key: "agentbeat-it-linux-x86-64"
env:
PLATFORM: "linux/amd64"
depends_on:
- agentbeat-package-linux
# depends_on:
# - agentbeat-package-linux
command: |
cd x-pack/agentbeat
mage -v testWithSpec
Expand All @@ -90,8 +90,8 @@ steps:
key: "agentbeat-it-linux-arm64"
env:
PLATFORM: "linux/arm64"
depends_on:
- agentbeat-package-linux
# depends_on:
# - agentbeat-package-linux
command: |
cd x-pack/agentbeat
mage -v testWithSpec
Expand All @@ -104,8 +104,8 @@ steps:
key: "agentbeat-it-windows"
env:
PLATFORM: "windows/amd64"
depends_on:
- agentbeat-package-linux
# depends_on:
# - agentbeat-package-linux
command: |
Set-Location -Path x-pack/agentbeat
mage -v testWithSpec
Expand All @@ -118,8 +118,8 @@ steps:

- label: ":macos: x-pack/agentbeat: macOS x86_64 Spec tests"
key: "agentbeat-it-macos-x86-64"
depends_on:
- agentbeat-package-linux
# depends_on:
# - agentbeat-package-linux
env:
PLATFORM: "darwin/amd64"
command: |
Expand All @@ -131,10 +131,10 @@ steps:
provider: "orka"
imagePrefix: "${IMAGE_MACOS_X86_64}"

- label: ":macos: Agentbeat/Integration tests macOS arm64"
- label: ":macos: x-pack/agentbeat: macOS arm64 Spec tests"
key: "agentbeat-it-macos-arm64"
depends_on:
- agentbeat-package-linux
# depends_on:
# - agentbeat-package-linux
env:
PLATFORM: "darwin/arm64"
command: |
Expand Down

0 comments on commit 63ba671

Please sign in to comment.