Add conditions to skip container publish
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
6
.github/workflows/main.yml
vendored
6
.github/workflows/main.yml
vendored
@@ -91,6 +91,8 @@ jobs:
|
|||||||
rust_targets: ${{vars.RUST_TARGETS}}
|
rust_targets: ${{vars.RUST_TARGETS}}
|
||||||
sys_targets: ${{vars.sys_TARGETS}}
|
sys_targets: ${{vars.sys_TARGETS}}
|
||||||
machines: ${{vars.MACHINES}}
|
machines: ${{vars.MACHINES}}
|
||||||
|
excludes: '[{"feat_set": "none"}]'
|
||||||
|
docker_id: ${{vars.DOCKER_ID}}
|
||||||
secrets:
|
secrets:
|
||||||
dockerhub_token: ${{ secrets.dockerhub_token }}
|
ghcr_token: ${{ secrets.GHCR_TOKEN }}
|
||||||
ghcr_token: ${{ secrets.ghcr_token }}
|
dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|||||||
19
.github/workflows/publish.yml
vendored
19
.github/workflows/publish.yml
vendored
@@ -36,18 +36,22 @@ on:
|
|||||||
type: string
|
type: string
|
||||||
default: '[]'
|
default: '[]'
|
||||||
description: Matrix inclusions
|
description: Matrix inclusions
|
||||||
|
docker_id:
|
||||||
|
type: string
|
||||||
|
description: DockerHub ID
|
||||||
secrets:
|
secrets:
|
||||||
dockerhub_token:
|
|
||||||
ghcr_token:
|
ghcr_token:
|
||||||
|
dockerhub_token:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
containers:
|
containers:
|
||||||
if: ${{ !failure() && !cancelled() }}
|
if: ${{ !failure() && !cancelled() && inputs.docker_id }}
|
||||||
name: Publish via Github
|
name: Publish containers
|
||||||
runs-on: ${{matrix.machine}}
|
runs-on: ${{matrix.machine}}
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
|
continue-on-error: false
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: true
|
||||||
matrix:
|
matrix:
|
||||||
bake_target: ${{fromJSON('["github", "dockerhub"]')}}
|
bake_target: ${{fromJSON('["github", "dockerhub"]')}}
|
||||||
cargo_profile: ${{fromJSON(inputs.cargo_profiles)}}
|
cargo_profile: ${{fromJSON(inputs.cargo_profiles)}}
|
||||||
@@ -69,12 +73,11 @@ jobs:
|
|||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.ghcr_token }}
|
password: ${{ secrets.ghcr_token }}
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- name: DockerHub Login
|
- name: DockerHub Login
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: docker.io
|
registry: docker.io
|
||||||
username: ${{ github.actor }}
|
username: ${{ inputs.docker_id }}
|
||||||
password: ${{ secrets.dockerhub_token }}
|
password: ${{ secrets.dockerhub_token }}
|
||||||
|
|
||||||
- name: Bake
|
- name: Bake
|
||||||
@@ -90,9 +93,7 @@ jobs:
|
|||||||
machine: ${{matrix.machine}}
|
machine: ${{matrix.machine}}
|
||||||
acct: ${{github.actor}}
|
acct: ${{github.actor}}
|
||||||
repo: ${{github.repository}}
|
repo: ${{github.repository}}
|
||||||
CI_VERBOSE_ENV: ${{inputs.verbose_env}}
|
docker_repo: ${{inputs.docker_id}}
|
||||||
CI_SILENT_BAKE: ${{inputs.silent_bake}}
|
|
||||||
CI_PRINT_BAKE: ${{inputs.print_bake}}
|
|
||||||
|
|
||||||
run: |
|
run: |
|
||||||
docker/bake.sh ${{matrix.bake_target}}
|
docker/bake.sh ${{matrix.bake_target}}
|
||||||
|
|||||||
@@ -1,8 +1,23 @@
|
|||||||
variable "acct" {}
|
variable "acct" {
|
||||||
variable "repo" {}
|
default = "$GITHUB_ACTOR"
|
||||||
variable GITHUB_REF {}
|
}
|
||||||
variable GITHUB_REF_SHA {}
|
|
||||||
variable GITHUB_REF_NAME {}
|
variable "repo" {
|
||||||
|
default = "$GITHUB_REPOSITORY"
|
||||||
|
}
|
||||||
|
variable "docker_repo" {
|
||||||
|
default = "$DOCKER_ID"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "git_ref" {
|
||||||
|
default = "$GITHUB_REF"
|
||||||
|
}
|
||||||
|
variable "git_ref_sha" {
|
||||||
|
default = "$GITHUB_REF_SHA"
|
||||||
|
}
|
||||||
|
variable "git_ref_name" {
|
||||||
|
default = "$GITHUB_REF_NAME"
|
||||||
|
}
|
||||||
|
|
||||||
cargo_feat_sets = {
|
cargo_feat_sets = {
|
||||||
none = ""
|
none = ""
|
||||||
@@ -194,11 +209,11 @@ group "publish" {
|
|||||||
target "github" {
|
target "github" {
|
||||||
name = elem("github", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
name = elem("github", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
tags = [
|
tags = [
|
||||||
"ghcr.io/matrix-construct/tuwunel:${GITHUB_REF_NAME}-${cargo_profile}-${feat_set}-${sys_target}",
|
"ghcr.io/${repo}:${git_ref_name}-${cargo_profile}-${feat_set}-${sys_target}",
|
||||||
(cargo_profile == "release" && feat_set == "all")?
|
(cargo_profile == "release" && feat_set == "all")?
|
||||||
"ghcr.io/matrix-construct/tuwunel:${GITHUB_REF_NAME}": "",
|
"ghcr.io/${repo}:${git_ref_name}": "",
|
||||||
(GITHUB_REF_NAME == "main" && cargo_profile == "release" && feat_set == "all")?
|
(git_ref_name == "main" && cargo_profile == "release" && feat_set == "all")?
|
||||||
"ghcr.io/matrix-construct/tuwunel:latest": "",
|
"ghcr.io/${repo}:latest": "",
|
||||||
]
|
]
|
||||||
output = ["type=registry,compression=zstd,mode=min"]
|
output = ["type=registry,compression=zstd,mode=min"]
|
||||||
matrix = cargo_rust_feat_sys
|
matrix = cargo_rust_feat_sys
|
||||||
@@ -210,11 +225,11 @@ target "github" {
|
|||||||
target "dockerhub" {
|
target "dockerhub" {
|
||||||
name = elem("dockerhub", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
name = elem("dockerhub", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
tags = [
|
tags = [
|
||||||
"jevolk/tuwunel:${GITHUB_REF_NAME}-${cargo_profile}-${feat_set}-${sys_target}",
|
"${docker_repo}:${git_ref_name}-${cargo_profile}-${feat_set}-${sys_target}",
|
||||||
(cargo_profile == "release" && feat_set == "all")?
|
(cargo_profile == "release" && feat_set == "all")?
|
||||||
"jevolk/tuwunel:${GITHUB_REF_NAME}": "",
|
"${docker_repo}:${git_ref_name}": "",
|
||||||
(GITHUB_REF_NAME == "main" && cargo_profile == "release" && feat_set == "all")?
|
(git_ref_name == "main" && cargo_profile == "release" && feat_set == "all")?
|
||||||
"jevolk/tuwunel:latest": "",
|
"${docker_repo}:latest": "",
|
||||||
]
|
]
|
||||||
output = ["type=registry,compression=zstd,mode=min"]
|
output = ["type=registry,compression=zstd,mode=min"]
|
||||||
matrix = cargo_rust_feat_sys
|
matrix = cargo_rust_feat_sys
|
||||||
|
|||||||
Reference in New Issue
Block a user