laminar-config/jobs/freeloadio.run

46 lines
1.4 KiB
Text
Raw Permalink Normal View History

2024-12-15 09:15:52 +01:00
#!/usr/bin/env python
from os import getenv
from os.path import dirname
from re import match
from shlex import quote
from subprocess import run
commit_before_sha = getenv("CI_COMMIT_BEFORE_SHA")
commit_sha = getenv("CI_COMMIT_SHA")
commit_ref_name = getenv("CI_COMMIT_REF_NAME")
directories = set()
dockerfile_updated = False
cmd = "git clone https://code.ryuslash.org/ryuslash/git-lfs-test.git ."
print(cmd)
run(cmd, shell=True)
cmd = "docker images ryuslash.org/freeloadio"
print(cmd)
process = run(cmd, shell=True, capture_output=True)
process_output = process.stdout.decode()
if len(process_output.strip().split("\n")) == 1:
# We don't have any docker file at all yet.
dockerfile_updated = True
if not match(r"^0+$", commit_before_sha):
cmd = f"git diff --name-only {quote(commit_before_sha)} {quote(commit_sha)}"
print(cmd)
process = run(cmd, shell=True, capture_output=True)
process_output = process.stdout.decode()
print(process_output)
for filename in process_output.strip().split("\n"):
if filename == "Dockerfile":
dockerfile_updated = True
directories.add(dirname(filename))
if dockerfile_updated:
cmd = "docker build -t ryuslash.org/freeloadio:latest ."
print(cmd)
run(cmd, shell=True)
unix_directory_list = str.join(":", directories)
print(f"python tasks.py probe --directories={quote(unix_directory_list)}")