summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2023-09-09 13:26:04 +0000
committerViacheslav Hletenko <v.gletenko@vyos.io>2023-09-09 13:26:04 +0000
commit4bac19fcfd0739e5e4271a0e8b2fde84eff2712f (patch)
tree2b9600b2c2fcdecfec24bcae4a57c2633637de24 /packages
parenta863fe0b03cd2eb062eb97c5e47992b4e8e999c6 (diff)
downloadvyos-build-4bac19fcfd0739e5e4271a0e8b2fde84eff2712f.tar.gz
vyos-build-4bac19fcfd0739e5e4271a0e8b2fde84eff2712f.zip
T5261: Rewrite build aws-gwlbtun to python3 and add arch arm64
Rewrite build package `aws-gwlbtun` to python3 Add build package for architecrute `arm64`
Diffstat (limited to 'packages')
-rw-r--r--packages/aws-gateway-load-balancer-tunnel-handler/Jenkinsfile11
-rwxr-xr-xpackages/aws-gateway-load-balancer-tunnel-handler/build.py72
-rwxr-xr-xpackages/aws-gateway-load-balancer-tunnel-handler/build.sh38
-rw-r--r--packages/aws-gateway-load-balancer-tunnel-handler/build_config.toml6
4 files changed, 85 insertions, 42 deletions
diff --git a/packages/aws-gateway-load-balancer-tunnel-handler/Jenkinsfile b/packages/aws-gateway-load-balancer-tunnel-handler/Jenkinsfile
index 0f9cb7e3..14507fdc 100644
--- a/packages/aws-gateway-load-balancer-tunnel-handler/Jenkinsfile
+++ b/packages/aws-gateway-load-balancer-tunnel-handler/Jenkinsfile
@@ -20,10 +20,13 @@
@Library('vyos-build@current')_
def pkgList = [
- ['name': 'aws-gateway-load-balancer-tunnel-handler',
- 'scmCommit': 'f78058a',
- 'scmUrl': 'https://github.com/aws-samples/aws-gateway-load-balancer-tunnel-handler',
- 'buildCmd': 'cd ..; ./build.sh'],
+ [
+ 'name': 'aws-gateway-load-balancer-tunnel-handler',
+ 'scmCommit': 'f78058a',
+ 'scmUrl': 'https://github.com/aws-samples/aws-gateway-load-balancer-tunnel-handler',
+ 'buildCmd': "./build.sh",
+ 'architecture': ['amd64', 'arm64'],
+ ],
]
// Start package build using library function from https://github.com/vyos/vyos-build
diff --git a/packages/aws-gateway-load-balancer-tunnel-handler/build.py b/packages/aws-gateway-load-balancer-tunnel-handler/build.py
new file mode 100755
index 00000000..46778059
--- /dev/null
+++ b/packages/aws-gateway-load-balancer-tunnel-handler/build.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2023 VyOS maintainers and contributors
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 or later as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import subprocess
+import toml
+
+def build_package(arch, version, source_dir):
+ package_dir = f"aws-gwlbtun-{arch}"
+ deb_name = f"aws-gwlbtun_{version}_{arch}.deb"
+
+ # Navigate to the repository directory
+ os.chdir(source_dir)
+
+ # Build the binary
+ subprocess.run(["cmake", f"-DARCH={arch}"])
+ subprocess.run(["make"])
+
+ # Create the Debian package directory structure
+ os.makedirs(f"{package_dir}/DEBIAN", exist_ok=True)
+ os.makedirs(f"{package_dir}/usr/bin", exist_ok=True)
+
+ # Move the binary to the package directory
+ subprocess.run(["cp", "gwlbtun", f"{package_dir}/usr/bin"])
+
+ # Create the control file
+ control_file = f"""Package: aws-gwlbtun
+Version: {version}
+Architecture: {arch}
+Maintainer: VyOS Maintainers <autobuild@vyos.net>
+Description: AWS Gateway Load Balancer Tunnel Handler
+"""
+ with open(f"{package_dir}/DEBIAN/control", "w") as f:
+ f.write(control_file)
+
+ # Build the Debian package
+ subprocess.run(["dpkg-deb", "--build", package_dir])
+
+ # Move the generated package to the original working directory with the correct name
+ subprocess.run(["mv", f"{package_dir}.deb", f"../{deb_name}"])
+
+ # Clean up
+ subprocess.run(["make", "clean"])
+
+ # Go back to the initial directory
+ os.chdir("..")
+
+def main():
+ # Load configuration from TOML file
+ config = toml.load("build_config.toml")
+ version = config["version"]
+ architectures = config["architectures"]
+ source_dir = config.get("sourceDir", "aws-gateway-load-balancer-tunnel-handler")
+
+ for arch in architectures:
+ build_package(arch, version, source_dir)
+
+if __name__ == "__main__":
+ main()
diff --git a/packages/aws-gateway-load-balancer-tunnel-handler/build.sh b/packages/aws-gateway-load-balancer-tunnel-handler/build.sh
deleted file mode 100755
index d4feb6ac..00000000
--- a/packages/aws-gateway-load-balancer-tunnel-handler/build.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-CWD=$(pwd)
-set -e
-
-SRC=aws-gateway-load-balancer-tunnel-handler
-
-if [ ! -d ${SRC} ]; then
- echo "${SRC} directory does not exists, please 'git clone'"
- exit 1
-fi
-
-# Navigate to the repository directory
-cd ${SRC}
-
-# Build the binary
-cmake .
-make
-
-# Create the Debian package directory structure
-mkdir -p aws-gwlbtun/DEBIAN
-mkdir -p aws-gwlbtun/usr/bin
-
-# Move the binary to the package directory
-cp gwlbtun aws-gwlbtun/usr/bin
-
-# Create the control file
-cat <<EOL > aws-gwlbtun/DEBIAN/control
-Package: aws-gwlbtun
-Version: 1-eb51d33
-Architecture: amd64
-Maintainer: VyOS Maintainers autobuild@vyos.net
-Description: AWS Gateway Load Balancer Tunnel Handler
-EOL
-
-# Build the Debian package
-dpkg-deb --build aws-gwlbtun
-
-cp *.deb ${CWD}
diff --git a/packages/aws-gateway-load-balancer-tunnel-handler/build_config.toml b/packages/aws-gateway-load-balancer-tunnel-handler/build_config.toml
new file mode 100644
index 00000000..08921d41
--- /dev/null
+++ b/packages/aws-gateway-load-balancer-tunnel-handler/build_config.toml
@@ -0,0 +1,6 @@
+
+architectures = ["amd64", "arm64"]
+packageName = "aws-gwlbtun"
+scmUrl = "https://github.com/aws-samples/aws-gateway-load-balancer-tunnel-handler"
+scmCommit = "f78058a"
+version = "1-f78058a"