diff options
Diffstat (limited to 'justfile')
| -rw-r--r-- | justfile | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/justfile b/justfile new file mode 100644 index 0000000..11fa935 --- /dev/null +++ b/justfile @@ -0,0 +1,78 @@ +# Variables +registry_url := "public.ecr.aws/s0f9o2k5" +containers := `ls src` +targets := `find src -type f -name "targets" -exec dirname {} \; | sed 's/src\///'` + +# Default recipe +default: build push + +# Build all containers and targets +build: build-containers build-targets + +# Push all containers and targets +push: push-containers push-targets + +# Build a single container +build-container container: + #!/usr/bin/env bash + base_ver=$(cat src/base/VERSION) + tag=$(cat src/{{container}}/VERSION) + docker build --build-arg BASE_VER=$base_ver -t {{registry_url}}/{{container}}:$tag -f src/{{container}}/Dockerfile src/{{container}} + echo "{{container}}/$tag has been built" + +# Push a single container +push-container container: + #!/usr/bin/env bash + tag=$(cat src/{{container}}/VERSION) + docker push {{registry_url}}/{{container}}:$tag + echo "{{container}}/$tag has been pushed" + +# Build all containers +build-containers: + #!/usr/bin/env bash + for container in {{containers}}; do + just build-container $container + done + +# Push all containers +push-containers: + #!/usr/bin/env bash + for container in {{containers}}; do + just push-container $container + done + +# Build targets +build-targets: + #!/usr/bin/env bash + for dir in {{targets}}; do + base_name=$(dirname $dir) + target=$(basename $dir) + tag=$(cat src/$base_name/VERSION) + docker build --target $target -t {{registry_url}}/$base_name:$tag-$target -f src/$base_name/Dockerfile src/$base_name + docker build --target $target -t {{registry_url}}/$base_name:$target -f src/$base_name/Dockerfile src/$base_name + echo "$base_name/$target/$tag has been built" + done + +# Push targets +push-targets: + #!/usr/bin/env bash + for dir in {{targets}}; do + base_name=$(dirname $dir) + target=$(basename $dir) + tag=$(cat src/$base_name/VERSION) + docker push {{registry_url}}/$base_name:$tag-$target + docker push {{registry_url}}/$base_name:$target + echo "$base_name/$target/$tag has been pushed" + done + +# Bump version +bump-version container: + #!/usr/bin/env bash + echo "v$(bumpver patch src/{{container}}/VERSION)" > src/{{container}}/VERSION + +# Bump versions: +bump-versions: + #!/usr/bin/env bash + for container in {{containers}}; do + just push-container $container + done |