From 936893e6c65ea30471b8f74a8ecb51e9fb09e00c Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Fri, 6 Jun 2025 01:44:16 +0000 Subject: [PATCH] Conditions for special tags published to container registries. Signed-off-by: Jason Volk --- .github/workflows/publish.yml | 4 +++- docker/bake.hcl | 14 ++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 06a450ea..fe36dc40 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -65,7 +65,7 @@ jobs: !failure() && !cancelled() && inputs.machines && inputs.docker_repo != '' - && github.ref == 'refs/heads/main' + && (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/')) name: Containers runs-on: ${{matrix.machine}} @@ -115,6 +115,8 @@ jobs: acct: ${{github.actor}} repo: ${{github.repository}} docker_repo: ${{inputs.docker_repo}} + docker_tag_latest: ${{ contains(github.ref, 'refs/tags/') && !contains(github.ref, '-rc') }} + docker_tag_preview: ${{ contains(github.ref, 'refs/tags/') && contains(github.ref, '-rc') }} run: | docker/bake.sh "${{matrix.bake_target}}" diff --git a/docker/bake.hcl b/docker/bake.hcl index 9a764a02..e1634c94 100644 --- a/docker/bake.hcl +++ b/docker/bake.hcl @@ -16,6 +16,12 @@ variable "repo" { variable "docker_repo" { default = "${repo}" } +variable "docker_tag_preview" { + default = false +} +variable "docker_tag_latest" { + default = false +} variable "git_ref" { default = "${GITHUB_REF}" @@ -261,8 +267,8 @@ target "github" { name = elem("github", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]) tags = [ "ghcr.io/${repo}:${git_ref_name}-${cargo_profile}-${feat_set}-${sys_target}", - (substr(git_ref, 0, 10) == "refs/tags/" && cargo_profile == "release" && feat_set == "all")? - "ghcr.io/${repo}:latest": "", + docker_tag_preview? "ghcr.io/${repo}:preview": "", + docker_tag_latest? "ghcr.io/${repo}:latest": "", ] output = ["type=registry,compression=zstd,mode=min,compression-level=${image_compress_level}"] matrix = cargo_rust_feat_sys @@ -275,8 +281,8 @@ target "dockerhub" { name = elem("dockerhub", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]) tags = [ "${docker_repo}:${git_ref_name}-${cargo_profile}-${feat_set}-${sys_target}", - (substr(git_ref, 0, 10) == "refs/tags/" && cargo_profile == "release" && feat_set == "all")? - "${docker_repo}:latest": "", + docker_tag_preview? "${docker_repo}:preview": "", + docker_tag_latest? "${docker_repo}:latest": "", ] output = ["type=registry,compression=zstd,mode=min,compression-level=${image_compress_level}"] matrix = cargo_rust_feat_sys