diff --git a/Dockerfile.local b/Dockerfile.local new file mode 100644 index 0000000..bea4c11 --- /dev/null +++ b/Dockerfile.local @@ -0,0 +1,2 @@ +FROM httpd:alpine +COPY dist/ /usr/local/apache2/htdocs/ \ No newline at end of file diff --git a/build.py b/build.py new file mode 100644 index 0000000..c484f56 --- /dev/null +++ b/build.py @@ -0,0 +1,37 @@ +from pathlib import Path +from shutil import rmtree +from subprocess import PIPE, run + + +def buildx(repository: str, tags: list[str], build_platforms: list[str], dockerfile: str = "Dockerfile", build_args: dict[str, str] | None = None, directory: str = ".", push: bool = True, pull: bool = False, progress: str = "auto", write_command: bool = False): + if build_args is None: + build_args = dict() + labels = [f"{repository}:{tag}" for tag in tags] + command = list(filter(None, ["docker", "buildx", "build", + "--platform", ",".join(build_platforms), + *[t for (key, value) in build_args.items() + for t in ("--build-arg", f"{key}={value}")], + "--file", dockerfile, + *[t for label in labels for t in ("--tag", label)], + f"--progress={progress}", + "--pull" if pull else None, + "--push" if push else None, + directory])) + if write_command: + print(" ".join(command)) + run(command, check=True) + +if __name__ == '__main__': + output_path = Path("dist") + if output_path.exists(): + rmtree(output_path) + output_path.mkdir() + run(["python", "createreadmes.py"], check=True) + run(["bundle.bat", "exec", "jekyll", "build", "--destination", output_path], check=True) + branch = run(["git", "branch", "--show-current"], + stdout=PIPE, check=True).stdout.decode().strip() + short_sha = run(["git", "rev-parse", "--short", "HEAD"], + stdout=PIPE, check=True).stdout.decode().strip() + platforms = ['linux/amd64', 'linux/arm/v6', 'linux/arm/v7', + 'linux/arm64/v8', 'linux/386', 'linux/ppc64le', 'linux/s390x'] + buildx("chenio/code2dfd", [branch, short_sha], platforms, dockerfile="Dockerfile.local")