summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordd <dd@wx.tnyzeq.icu>2024-10-06 21:52:10 +0200
committerdd <dd@wx.tnyzeq.icu>2024-10-06 22:21:49 +0200
commit8de017a4259ff4b45239b59694586a1ae2e77c86 (patch)
tree58a08b27bace9cb2697aa83249393b293f2f97d6
parentdc35fa097f50b756df307122cc6a32148a12cb96 (diff)
downloadvyos-jenkins-8de017a4259ff4b45239b59694586a1ae2e77c86.tar.gz
vyos-jenkins-8de017a4259ff4b45239b59694586a1ae2e77c86.zip
updated circinus image builder docker run
-rwxr-xr-xnew/image_builder.py56
-rwxr-xr-xnew/package_builder.py2
2 files changed, 30 insertions, 28 deletions
diff --git a/new/image_builder.py b/new/image_builder.py
index 3d99975..ddf3247 100755
--- a/new/image_builder.py
+++ b/new/image_builder.py
@@ -21,6 +21,8 @@ class ImageBuilder:
"sagitta": "1.4.x",
"circinus": "1.5.x",
}
+ docker_image = None
+ vyos_build_repo = None
def __init__(self, branch, vyos_build_git, vyos_mirror, extra_options, flavor, build_by, version, bind_addr,
bind_port, keep_build):
@@ -48,14 +50,14 @@ class ImageBuilder:
logging.info("Using supplied APT repository at %s" % vyos_mirror)
logging.info("Pulling vyos-build docker image")
- docker_image = "vyos/vyos-build:%s" % self.branch
- execute("docker pull %s" % quote_all(docker_image), passthrough=True)
+ self.docker_image = "vyos/vyos-build:%s" % self.branch
+ execute("docker pull %s" % quote_all(self.docker_image), passthrough=True)
- vyos_build_repo = os.path.join(self.project_dir, "build", "%s-image-build" % self.branch)
- git = Git(vyos_build_repo)
+ self.vyos_build_repo = os.path.join(self.project_dir, "build", "%s-image-build" % self.branch)
+ git = Git(self.vyos_build_repo)
if not self.keep_build:
if git.exists():
- rmtree(vyos_build_repo)
+ rmtree(self.vyos_build_repo)
if not git.exists():
git.clone(self.vyos_build_git, self.branch)
@@ -93,32 +95,12 @@ class ImageBuilder:
build_image_pieces.append(self.extra_options)
build_image_command = " ".join(build_image_pieces)
- # docker run
- docker_pieces = [
- "docker run --rm -it",
- "-v %s:/vyos" % quote(vyos_build_repo),
- ]
- if self.vyos_mirror == "local":
- apt_key_path = os.path.join(self.project_dir, "apt", "apt.gpg.key")
- docker_pieces.extend([
- "-v %s:/opt/apt.gpg.key" % quote(apt_key_path),
- ])
- docker_pieces.extend([
- "-w /vyos --privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0",
- "-e GOSU_UID=%s -e GOSU_GID=%s" % (os.getuid(), os.getgid()),
- docker_image,
- build_image_command,
- ])
- docker_command = " ".join(docker_pieces)
-
logging.info("Using build image command: '%s'" % build_image_command)
- logging.info("Using docker run command: '%s'" % docker_command)
logging.info("Executing image build now...")
-
- execute(docker_command, passthrough=True)
+ self.docker_run(build_image_command)
image_path = None
- build_dir = os.path.join(vyos_build_repo, "build")
+ build_dir = os.path.join(self.vyos_build_repo, "build")
if os.path.exists(build_dir):
for entry in os.scandir(build_dir):
if version in entry.name and entry.name.endswith(".iso"):
@@ -139,6 +121,26 @@ class ImageBuilder:
elapsed = round(monotonic() - begin, 3)
logging.info("Done in %s seconds, image is available here: %s" % (elapsed, new_image_path))
+ def docker_run(self, command):
+ docker_pieces = [
+ "docker run --rm -it",
+ "-v %s:/vyos" % quote(self.vyos_build_repo),
+ ]
+ if self.vyos_mirror == "local":
+ apt_key_path = os.path.join(self.project_dir, "apt", "apt.gpg.key")
+ docker_pieces.extend([
+ "-v %s:/opt/apt.gpg.key" % quote(apt_key_path),
+ ])
+ docker_pieces.extend([
+ "-w /vyos --privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0",
+ "-e GOSU_UID=%s -e GOSU_GID=%s" % (os.getuid(), os.getgid()),
+ self.docker_image,
+ command,
+ ])
+ docker_command = " ".join(docker_pieces)
+
+ execute(docker_command, passthrough=True)
+
def start_local_webserver(self):
address = self.get_local_ip() if not self.bind_addr else self.bind_addr
port = self.get_free_port(address) if not self.bind_port else self.bind_port
diff --git a/new/package_builder.py b/new/package_builder.py
index 3f01520..fea3a41 100755
--- a/new/package_builder.py
+++ b/new/package_builder.py
@@ -11,7 +11,7 @@ from lib.apt import Apt
from lib.cache import Cache
from lib.git import Git
from lib.github import GitHub
-from lib.helpers import setup_logging, quote_all, execute, ProcessException, rmtree, refuse_root
+from lib.helpers import setup_logging, quote_all, execute, ProcessException, refuse_root, rmtree
class Builder: