Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
482ad09
strating point for new workflows
chaptersix Dec 4, 2025
ae08878
remove registry cache
chaptersix Dec 10, 2025
868eeea
js scripts to go
chaptersix Dec 10, 2025
453db09
ommited changes from last commit
chaptersix Dec 10, 2025
69b41e4
fix dep warnings from goreleaser
chaptersix Dec 10, 2025
878dc5d
add admin-tools for feature tests
chaptersix Dec 11, 2025
f0242ab
add docker-compose to assets
chaptersix Dec 11, 2025
d205684
fix lin issue
chaptersix Dec 11, 2025
bfdf8c7
rm working-dir
chaptersix Dec 11, 2025
c5f171c
try try again
chaptersix Dec 11, 2025
e24c636
try against features fix
chaptersix Dec 11, 2025
b4340dc
try adding a ref
chaptersix Dec 11, 2025
8388f42
remove ref
chaptersix Dec 11, 2025
9e3a0d7
missing branch tag
chaptersix Dec 11, 2025
5ce1a8b
sha instead of branch
chaptersix Dec 11, 2025
b0fedca
add debug workflow
chaptersix Dec 12, 2025
fad21cb
change trigger
chaptersix Dec 12, 2025
0ee0714
new commit
chaptersix Dec 12, 2025
10a2366
repo ref
chaptersix Dec 12, 2025
86c4e92
update primary wf
chaptersix Dec 12, 2025
8261250
use branch name and remove debug workflow
chaptersix Dec 12, 2025
bcc5f30
switch back to commit sha with some logging
chaptersix Dec 12, 2025
829c9a1
update ref
chaptersix Dec 12, 2025
453f04b
update commit sha
chaptersix Dec 12, 2025
d73e614
commit update
chaptersix Dec 12, 2025
03bf90b
add check for all cli tools in admin image
chaptersix Dec 12, 2025
1379b94
align re-org script to match admin-tools file
chaptersix Dec 12, 2025
6d8735d
make the go script aware of single platform builds and return an erro…
chaptersix Dec 12, 2025
9cfeef3
update commit sha
chaptersix Dec 14, 2025
1c8da26
switch to working features repo workflows
chaptersix Dec 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/actions/build-binaries/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Build Binaries
description: Build Temporal binaries using GoReleaser

inputs:
snapshot:
description: "Use snapshot mode (true) or release mode (false). Only applies to release command (build always uses snapshot)."
required: false
default: "true"
single-arch:
description: "Single architecture to build (amd64 or arm64, empty for all). Only used with build command, ignored if release is true."
required: false
default: ""
release:
description: "Use release command (true) or build command (false). When true, single-arch is ignored and snapshot is respected."
required: false
default: "false"

runs:
using: composite
steps:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: "go.mod"
cache: true

- name: Run GoReleaser (release)
if: inputs.release == 'true'
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: v2.13.1
args: release ${{ inputs.snapshot == 'true' && '--snapshot --skip=publish' || '' }} --clean
env:
GITHUB_TOKEN: ${{ github.token }}

- name: Run GoReleaser (build)
if: inputs.release != 'true'
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: v2.13.1
args: build --snapshot ${{ inputs.single-arch != '' && '--single-target' || '' }}
env:
GITHUB_TOKEN: ${{ github.token }}
GOOS: ${{ inputs.single-arch != '' && 'linux' || '' }}
GOARCH: ${{ inputs.single-arch }}
140 changes: 140 additions & 0 deletions .github/actions/build-docker-images/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
name: Build Docker Images
description: |
Build Temporal Docker images from binaries.

Prerequisites:
- The build-binaries action must run before this action to produce the binaries.

inputs:
push:
description: "Push images to Docker Hub"
required: false
default: "false"
tag-latest:
description: "Tag images as latest"
required: false
default: "false"
platform:
description: "Single platform to build (e.g., linux/amd64)"
required: false
default: ""
load:
description: "Load image into local Docker daemon (only works with linux/amd64 - the runner architecture)"
required: false
default: "false"
dockerhub-username:
description: "Docker Hub username"
required: false
dockerhub-token:
description: "Docker Hub token"
required: false

runs:
using: composite
steps:
- name: Build docker-build-helper
shell: bash
working-directory: ${{ github.workspace }}/.github/actions/build-docker-images/scripts
run: |
go build -o docker-build-helper .

- name: Validate and sanitize branch name for Docker tag
id: sanitize-tag
shell: bash
working-directory: ${{ github.workspace }}
run: |
.github/actions/build-docker-images/scripts/docker-build-helper sanitize-tag

- name: Organize binaries for Docker
id: organize-binaries
shell: bash
working-directory: ${{ github.workspace }}
env:
PLATFORM: ${{ inputs.platform }}
run: |
.github/actions/build-docker-images/scripts/docker-build-helper organize-binaries

- name: Download Temporal CLI
shell: bash
working-directory: ${{ github.workspace }}
env:
AVAILABLE_ARCHS: ${{ steps.organize-binaries.outputs.available-archs }}
run: |
.github/actions/build-docker-images/scripts/docker-build-helper download-cli

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
if: inputs.push == 'true'
uses: docker/login-action@v3
with:
username: ${{ inputs.dockerhub-username }}
password: ${{ inputs.dockerhub-token }}

- name: Build Docker images
if: inputs.push != 'true'
shell: bash
working-directory: ${{ github.workspace }}
env:
IMAGE_REPO: temporaliotest
IMAGE_SHA_TAG: ${{ github.sha }}
IMAGE_BRANCH_TAG: ${{ steps.sanitize-tag.outputs.tag }}
TEMPORAL_SHA: ${{ github.sha }}
TAG_LATEST: ${{ inputs.tag-latest }}
run: |
if [ -n "${{ inputs.platform }}" ]; then
docker buildx bake \
--set "*.platform=${{ inputs.platform }}" \
${{ inputs.load == 'true' && '--load' || '' }} \
-f docker/docker-bake.hcl \
server admin-tools
else
docker buildx bake \
${{ inputs.load == 'true' && '--load' || '' }} \
-f docker/docker-bake.hcl \
server admin-tools
fi

- name: Verify admin-tools binaries
if: inputs.push != 'true' && inputs.load == 'true'
shell: bash
working-directory: ${{ github.workspace }}
env:
IMAGE_REPO: temporaliotest
IMAGE_SHA_TAG: ${{ github.sha }}
run: |
echo "Verifying admin-tools binaries are present in the image..."
MISSING_TOOLS=""

for tool in temporal temporal-server temporal-cassandra-tool temporal-sql-tool temporal-elasticsearch-tool tdbg; do
if docker run --rm "${IMAGE_REPO}/admin-tools:${IMAGE_SHA_TAG}" sh -c "[ -x /usr/local/bin/${tool} ]"; then
echo "✓ ${tool} found and executable"
else
echo "✗ ${tool} is missing or not executable"
MISSING_TOOLS="${MISSING_TOOLS} ${tool}"
fi
done

if [ -n "${MISSING_TOOLS}" ]; then
echo "ERROR: The following tools are missing or not executable:${MISSING_TOOLS}"
exit 1
fi

echo "All admin tools verified successfully"

- name: Build and push Docker images
if: inputs.push == 'true'
shell: bash
working-directory: ${{ github.workspace }}
env:
IMAGE_REPO: temporaliotest
IMAGE_SHA_TAG: ${{ github.sha }}
IMAGE_BRANCH_TAG: ${{ steps.sanitize-tag.outputs.tag }}
TEMPORAL_SHA: ${{ github.sha }}
TAG_LATEST: ${{ inputs.tag-latest }}
run: |
docker buildx bake \
--push \
-f docker/docker-bake.hcl \
server admin-tools
1 change: 1 addition & 0 deletions .github/actions/build-docker-images/scripts/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
docker-build-helper
Loading
Loading