mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
rebrand: go.temporal.io/server -> github.com/hanzoai/tasks
Full module path rebrand from Temporal to Hanzo Tasks: - go.mod module: github.com/hanzoai/tasks - All internal Go imports updated (1906 files) - cmd/server renamed to cmd/tasksd - Binary name: tasksd (was temporal-server) - Docker images: hanzoai/tasks (was temporalio/server) - README rewritten with Hanzo Tasks branding - LLM.md created with integration notes - Makefile, goreleaser, CI workflows updated - go.temporal.io/sdk and go.temporal.io/api imports preserved (separate repos) Fork of Temporal.io (MIT license).
This commit is contained in:
+1
-1
@@ -11,7 +11,7 @@ develop/docker-compose
|
||||
|
||||
# exclude binaries from the docker build context
|
||||
tdbg
|
||||
temporal-server
|
||||
tasksd
|
||||
temporal-cassandra-tool
|
||||
temporal-sql-tool
|
||||
temporal-elasticsearch-tool
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Syntax is here:
|
||||
# https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax
|
||||
|
||||
* @temporalio/server @temporalio/cgs
|
||||
* @hanzoai/tasks
|
||||
|
||||
@@ -93,7 +93,7 @@ runs:
|
||||
shell: bash
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
.github/actions/build-docker-images/scripts/docker-build-helper extract-binary-version temporal-server server-version
|
||||
.github/actions/build-docker-images/scripts/docker-build-helper extract-binary-version tasksd server-version
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
@@ -199,7 +199,7 @@ func organizeBinaries() error {
|
||||
|
||||
// Server binaries (for server image)
|
||||
serverBinaries := []string{
|
||||
"temporal-server",
|
||||
"tasksd",
|
||||
}
|
||||
|
||||
// All binaries to copy
|
||||
@@ -291,7 +291,7 @@ func organizeBinaries() error {
|
||||
// Check which architectures have binaries
|
||||
var availableArchs []string
|
||||
for _, arch := range archs {
|
||||
testBinary := filepath.Join("docker", "build", arch, "temporal-server")
|
||||
testBinary := filepath.Join("docker", "build", arch, "tasksd")
|
||||
if _, err := os.Stat(testBinary); err == nil {
|
||||
availableArchs = append(availableArchs, arch)
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
name: Auto-approve temporal-cicd[bot] PRs on cloud release branches
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- cloud/**
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
jobs:
|
||||
auto_approve:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.actor == 'temporal-cicd[bot]' }}
|
||||
steps:
|
||||
- name: Approve PR
|
||||
run: gh pr review --approve ${{ github.event.pull_request.html_url }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||
@@ -1,62 +0,0 @@
|
||||
name: Build and Publish
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- cloud/*
|
||||
- feature/*
|
||||
- release/*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build-and-push-docker:
|
||||
runs-on: ubuntu-latest
|
||||
# Only push for main, cloud, release branches (not feature)
|
||||
if: |
|
||||
github.ref == 'refs/heads/main' ||
|
||||
startsWith(github.ref, 'refs/heads/cloud/') ||
|
||||
startsWith(github.ref, 'refs/heads/release/')
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Build binaries
|
||||
uses: ./.github/actions/build-binaries
|
||||
with:
|
||||
snapshot: true
|
||||
|
||||
- name: Build and push Docker images
|
||||
uses: ./.github/actions/build-docker-images
|
||||
with:
|
||||
push: true
|
||||
tag-latest: ${{ github.ref == 'refs/heads/main' }}
|
||||
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
# For feature branches, just build (no push)
|
||||
build-docker-feature:
|
||||
runs-on: ubuntu-latest
|
||||
if: startsWith(github.ref, 'refs/heads/feature/')
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Build binaries
|
||||
uses: ./.github/actions/build-binaries
|
||||
with:
|
||||
snapshot: true
|
||||
|
||||
- name: Build Docker images
|
||||
uses: ./.github/actions/build-docker-images
|
||||
with:
|
||||
push: false
|
||||
tag-latest: false
|
||||
@@ -1,59 +0,0 @@
|
||||
name: Validate PR description for placeholder lines or empty sections
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, edited, synchronize, reopened]
|
||||
|
||||
permissions:
|
||||
pull-requests: read
|
||||
|
||||
jobs:
|
||||
validate-pr-description:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Validate PR description for placeholder lines or empty sections
|
||||
uses: actions/github-script@v8
|
||||
with:
|
||||
script: |
|
||||
const pr = await github.rest.pulls.get({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.payload.pull_request.number
|
||||
});
|
||||
|
||||
const body = pr.data.body || '';
|
||||
const lines = body.split(/\r?\n/);
|
||||
|
||||
let violations = [];
|
||||
|
||||
// Detect placeholder lines: entire line starts and ends with _
|
||||
lines.forEach((line, idx) => {
|
||||
if (/^_.*_$/.test(line.trim())) {
|
||||
violations.push(`Line ${idx + 1}: Placeholder "${line.trim()}"`);
|
||||
}
|
||||
});
|
||||
|
||||
// Detect empty sections: look for headers like '## Why?' followed by no meaningful content
|
||||
const requiredSections = ['## What changed?', '## Why?', '## How did you test it?'];
|
||||
requiredSections.forEach((header) => {
|
||||
const idx = lines.findIndex(line => line.trim().toLowerCase() === header.toLowerCase());
|
||||
if (idx !== -1) {
|
||||
let contentIdx = idx + 1;
|
||||
while (contentIdx < lines.length && lines[contentIdx].trim() === '') {
|
||||
contentIdx++;
|
||||
}
|
||||
const nextLine = lines[contentIdx]?.trim();
|
||||
if (!nextLine || /^## /.test(nextLine)) {
|
||||
violations.push(`Section "${header}" appears to be empty.`);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (violations.length > 0) {
|
||||
console.log("❌ PR description issues found:");
|
||||
violations.forEach(v => console.log(`- ${v}`));
|
||||
core.setFailed(`PR description must not contain placeholders or empty sections.`);
|
||||
} else {
|
||||
console.log("✅ PR description passed all checks.");
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
name: Check Release Dependencies
|
||||
on:
|
||||
pull_request: {}
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check-dependencies:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
if: >-
|
||||
startsWith('release/', github.event.pull_request.base.ref) ||
|
||||
startsWith('cloud/', github.event.pull_request.base.ref)
|
||||
|
||||
- name: Check temporal dependencies use tagged versions
|
||||
if: >-
|
||||
startsWith('release/', github.event.pull_request.base.ref) ||
|
||||
startsWith('cloud/', github.event.pull_request.base.ref)
|
||||
run: |
|
||||
echo "Checking that temporal dependencies use tagged versions..."
|
||||
|
||||
# Semantic version regex pattern (e.g., v1.2.3)
|
||||
SEMVER_PATTERN="^v[0-9]+\.[0-9]+\.[0-9]+$"
|
||||
|
||||
DEPENDENCIES=(
|
||||
"go.temporal.io/api"
|
||||
"go.temporal.io/sdk"
|
||||
)
|
||||
|
||||
ERRORS=""
|
||||
|
||||
for DEPENDENCY in "${DEPENDENCIES[@]}"; do
|
||||
VERSION=$(grep "^[[:space:]]*$DEPENDENCY" go.mod | awk '{print $2}')
|
||||
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "Error: $DEPENDENCY dependency not found in go.mod"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! echo "$VERSION" | grep -qE "$SEMVER_PATTERN"; then
|
||||
ERRORS="${ERRORS} $DEPENDENCY version '$VERSION' is not using a tagged version\n"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$ERRORS" ]; then
|
||||
echo "Dependency version check failed:"
|
||||
echo -e "$ERRORS"
|
||||
echo ""
|
||||
echo "For release branches, temporal dependencies must point to tagged"
|
||||
echo "versions (e.g., v1.2.3) rather than specific commits."
|
||||
echo ""
|
||||
echo "Please update your go.mod file to use proper semantic version tags."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "All temporal dependencies are using tagged versions"
|
||||
@@ -1,72 +0,0 @@
|
||||
name: CI Success Report
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Run on Tuesdays at noon Eastern time (5 PM UTC)
|
||||
- cron: '0 17 * * 2'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
days:
|
||||
description: 'Number of days to include in report'
|
||||
required: false
|
||||
default: '7'
|
||||
type: string
|
||||
workflow:
|
||||
description: 'Workflow name to report on'
|
||||
required: false
|
||||
default: 'All Tests'
|
||||
type: string
|
||||
branch:
|
||||
description: 'Branch to generate report for'
|
||||
required: false
|
||||
default: 'main'
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
|
||||
jobs:
|
||||
ci-success-report:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Generate token
|
||||
id: generate_token
|
||||
uses: actions/create-github-app-token@v1
|
||||
with:
|
||||
app-id: ${{ secrets.TEMPORAL_CICD_APP_ID }}
|
||||
private-key: ${{ secrets.TEMPORAL_CICD_PRIVATE_KEY }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.generate_token.outputs.token }}
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version-file: 'go.mod'
|
||||
|
||||
- name: Generate CI Success Report
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
DAYS_PARAM: ${{ github.event.inputs.days || '7' }}
|
||||
WORKFLOW_PARAM: ${{ github.event.inputs.workflow || 'All Tests' }}
|
||||
BRANCH_PARAM: ${{ github.event.inputs.branch || 'main' }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
echo "Branch: $BRANCH_PARAM"
|
||||
echo "Workflow: $WORKFLOW_PARAM"
|
||||
echo "Days: $DAYS_PARAM"
|
||||
|
||||
go run ./cmd/tools/ci-notify/main.go digest \
|
||||
--branch "$BRANCH_PARAM" \
|
||||
--workflow "$WORKFLOW_PARAM" \
|
||||
--days "$DAYS_PARAM" \
|
||||
--slack-webhook "$SLACK_WEBHOOK"
|
||||
|
||||
echo "Report sent successfully"
|
||||
@@ -1,113 +0,0 @@
|
||||
name: Manual Docker Build
|
||||
# Dispatch this workflow from the branch you want to build from.
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
alpine-tag:
|
||||
description: "Alpine base image tag (e.g., 3.23.3)"
|
||||
required: true
|
||||
default: "3.23.3"
|
||||
push:
|
||||
description: "Push images to Docker Hub"
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
tag-latest:
|
||||
description: "Tag images as latest"
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
platform:
|
||||
description: "Platform to build (leave empty for multi-arch, or specify linux/amd64 or linux/arm64)"
|
||||
required: false
|
||||
default: ""
|
||||
snapshot:
|
||||
description: "Build in snapshot mode (for non-release builds)"
|
||||
required: true
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build-docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Determine single-arch parameter
|
||||
id: arch-param
|
||||
env:
|
||||
PLATFORM: ${{ inputs.platform }}
|
||||
run: |
|
||||
if [ -n "${PLATFORM}" ]; then
|
||||
# Extract arch from platform (e.g., linux/amd64 -> amd64)
|
||||
ARCH=$(echo "${PLATFORM}" | cut -d'/' -f2)
|
||||
echo "single-arch=${ARCH}" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "single-arch=" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Build binaries
|
||||
uses: ./.github/actions/build-binaries
|
||||
with:
|
||||
snapshot: ${{ inputs.snapshot }}
|
||||
single-arch: ${{ steps.arch-param.outputs.single-arch }}
|
||||
|
||||
- name: Build Docker images
|
||||
id: build-docker
|
||||
if: ${{ !inputs.push }}
|
||||
uses: ./.github/actions/build-docker-images
|
||||
with:
|
||||
push: false
|
||||
tag-latest: ${{ inputs.tag-latest }}
|
||||
platform: ${{ inputs.platform }}
|
||||
alpine-tag: ${{ inputs.alpine-tag }}
|
||||
load: ${{ inputs.platform == 'linux/amd64' || inputs.platform == '' }}
|
||||
|
||||
- name: Build and push Docker images
|
||||
id: push-docker
|
||||
if: ${{ inputs.push }}
|
||||
uses: ./.github/actions/build-docker-images
|
||||
with:
|
||||
push: true
|
||||
tag-latest: ${{ inputs.tag-latest }}
|
||||
platform: ${{ inputs.platform }}
|
||||
alpine-tag: ${{ inputs.alpine-tag }}
|
||||
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Output image tags
|
||||
env:
|
||||
SHA_TAG: ${{ steps.build-docker.outputs.sha-tag || steps.push-docker.outputs.sha-tag }}
|
||||
SHA_FULL_TAG: ${{ steps.build-docker.outputs.sha-full-tag || steps.push-docker.outputs.sha-full-tag }}
|
||||
BRANCH_TAG: ${{ steps.build-docker.outputs.branch-tag || steps.push-docker.outputs.branch-tag }}
|
||||
REF_NAME: ${{ github.ref_name }}
|
||||
PLATFORM: ${{ inputs.platform || 'linux/amd64,linux/arm64' }}
|
||||
PUSHED: ${{ inputs.push }}
|
||||
TAG_LATEST: ${{ inputs.tag-latest }}
|
||||
run: |
|
||||
{
|
||||
echo "### Docker Images Built"
|
||||
echo ""
|
||||
echo "**Branch:** ${REF_NAME}"
|
||||
echo "**Short SHA Tag:** ${SHA_TAG}"
|
||||
echo "**Full SHA Tag:** ${SHA_FULL_TAG}"
|
||||
echo "**Branch Tag:** ${BRANCH_TAG}"
|
||||
echo "**Platform:** ${PLATFORM}"
|
||||
echo "**Pushed to Docker Hub:** ${PUSHED}"
|
||||
echo "**Tagged as latest:** ${TAG_LATEST}"
|
||||
echo ""
|
||||
echo "**Image Tags:**"
|
||||
echo "- temporaliotest/server:${SHA_TAG}"
|
||||
echo "- temporaliotest/admin-tools:${SHA_TAG}"
|
||||
echo "- temporaliotest/server:${SHA_FULL_TAG}"
|
||||
echo "- temporaliotest/admin-tools:${SHA_FULL_TAG}"
|
||||
echo "- temporaliotest/server:${BRANCH_TAG}"
|
||||
echo "- temporaliotest/admin-tools:${BRANCH_TAG}"
|
||||
} >> "$GITHUB_STEP_SUMMARY"
|
||||
@@ -1,154 +0,0 @@
|
||||
name: Features Integration
|
||||
|
||||
on: # rebuild any PRs and main branch changes
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
permissions: read-all
|
||||
|
||||
concurrency: # Auto-cancel existing runs in the PR when a new commit is pushed
|
||||
group: ${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build-docker-image:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: write
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Build binaries
|
||||
uses: ./.github/actions/build-binaries
|
||||
with:
|
||||
snapshot: true
|
||||
single-arch: amd64
|
||||
|
||||
- name: Build Docker images
|
||||
id: build-docker
|
||||
uses: ./.github/actions/build-docker-images
|
||||
with:
|
||||
push: false
|
||||
tag-latest: false
|
||||
platform: linux/amd64
|
||||
load: true
|
||||
|
||||
- name: Save Docker image as artifact
|
||||
env:
|
||||
BRANCH_TAG: ${{ steps.build-docker.outputs.branch-tag }}
|
||||
run: |
|
||||
docker save "temporaliotest/server:${BRANCH_TAG}" -o /tmp/temporal-server.tar
|
||||
docker save "temporaliotest/admin-tools:${BRANCH_TAG}" -o /tmp/temporal-admin-tools.tar
|
||||
echo "${BRANCH_TAG}" > /tmp/image_tag
|
||||
|
||||
- name: Prepare artifact
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
# Upload-artifact has no good way to flatten paths, so we need to move the compose file
|
||||
# to avoid some disgustingly long inner path inside the artifact zip.
|
||||
cp ./develop/docker-compose/docker-compose.yml /tmp/docker-compose.yml
|
||||
|
||||
- name: Upload Docker artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: temporal-server-docker
|
||||
path: |
|
||||
/tmp/temporal-server.tar
|
||||
/tmp/temporal-admin-tools.tar
|
||||
/tmp/image_tag
|
||||
/tmp/docker-compose.yml
|
||||
|
||||
retention-days: 7
|
||||
|
||||
feature-tests-ts:
|
||||
needs: build-docker-image
|
||||
uses: temporalio/features/.github/workflows/typescript.yaml@main
|
||||
with:
|
||||
# This field is not actually used by these workflow if docker-image-artifact-name
|
||||
# is set, but it's marked as required, so supply some string.
|
||||
version: __latest_features_docker_image__
|
||||
version-is-repo-ref: false
|
||||
docker-image-artifact-name: temporal-server-docker
|
||||
|
||||
feature-tests-go:
|
||||
needs: build-docker-image
|
||||
uses: temporalio/features/.github/workflows/go.yaml@main
|
||||
with:
|
||||
version: __latest_features_docker_image__
|
||||
version-is-repo-ref: false
|
||||
docker-image-artifact-name: temporal-server-docker
|
||||
|
||||
feature-tests-go-chasm-scheduler:
|
||||
needs: build-docker-image
|
||||
uses: temporalio/features/.github/workflows/go.yaml@main
|
||||
with:
|
||||
version: __latest_features_docker_image__
|
||||
version-is-repo-ref: false
|
||||
docker-image-artifact-name: temporal-server-docker
|
||||
dynamic-config-values: |
|
||||
history.enableTransitionHistory:
|
||||
- value: true
|
||||
history.enableChasm:
|
||||
- value: true
|
||||
history.enableCHASMSchedulerCreation:
|
||||
- value: true
|
||||
|
||||
feature-tests-python:
|
||||
needs: build-docker-image
|
||||
uses: temporalio/features/.github/workflows/python.yaml@main
|
||||
with:
|
||||
version: __latest_features_docker_image__
|
||||
version-is-repo-ref: false
|
||||
docker-image-artifact-name: temporal-server-docker
|
||||
|
||||
feature-tests-java:
|
||||
needs: build-docker-image
|
||||
uses: temporalio/features/.github/workflows/java.yaml@main
|
||||
with:
|
||||
version: __latest_features_docker_image__
|
||||
version-is-repo-ref: false
|
||||
docker-image-artifact-name: temporal-server-docker
|
||||
|
||||
feature-tests-dotnet:
|
||||
needs: build-docker-image
|
||||
uses: temporalio/features/.github/workflows/dotnet.yaml@main
|
||||
with:
|
||||
version: __latest_features_docker_image__
|
||||
version-is-repo-ref: false
|
||||
docker-image-artifact-name: temporal-server-docker
|
||||
|
||||
feature-tests-ruby:
|
||||
needs: build-docker-image
|
||||
uses: temporalio/features/.github/workflows/ruby.yaml@main
|
||||
with:
|
||||
version: __latest_features_docker_image__
|
||||
version-is-repo-ref: false
|
||||
docker-image-artifact-name: temporal-server-docker
|
||||
|
||||
feature-tests-status:
|
||||
name: Tests Status
|
||||
needs:
|
||||
- feature-tests-ts
|
||||
- feature-tests-go
|
||||
- feature-tests-go-chasm-scheduler
|
||||
- feature-tests-python
|
||||
- feature-tests-java
|
||||
- feature-tests-dotnet
|
||||
- feature-tests-ruby
|
||||
runs-on: ubuntu-latest
|
||||
if: always()
|
||||
env:
|
||||
RESULTS: ${{ toJSON(needs.*.result) }}
|
||||
steps:
|
||||
- name: Check results
|
||||
run: |
|
||||
if [[ -n $(echo "$RESULTS" | jq '.[] | select (. != "success")') ]]; then
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,76 +0,0 @@
|
||||
name: Flaky Tests Report
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Run on Wednesdays at noon Eastern time (5 PM UTC)
|
||||
- cron: "0 17 * * 3"
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
days:
|
||||
description: "Number of days to look back for flaky tests"
|
||||
required: false
|
||||
default: "7"
|
||||
type: string
|
||||
max_links:
|
||||
description: "Maximum number of failure links to show per test"
|
||||
required: false
|
||||
default: "3"
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
|
||||
jobs:
|
||||
flaky-tests-report:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Generate token
|
||||
id: generate_token
|
||||
uses: actions/create-github-app-token@v1
|
||||
with:
|
||||
app-id: ${{ secrets.TEMPORAL_CICD_APP_ID }}
|
||||
private-key: ${{ secrets.TEMPORAL_CICD_PRIVATE_KEY }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.generate_token.outputs.token }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
|
||||
- name: Generate flaky test report
|
||||
id: process-flaky-tests
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
DAYS_PARAM: ${{ github.event.inputs.days || '7' }}
|
||||
MAX_LINKS_PARAM: ${{ github.event.inputs.max_links || '3' }}
|
||||
RUN_ID: ${{ github.run_id }}
|
||||
REF_NAME: ${{ github.ref_name }}
|
||||
SHA: ${{ github.sha }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
go run ./cmd/tools/flakereport generate \
|
||||
--days "$DAYS_PARAM" \
|
||||
--max-links "$MAX_LINKS_PARAM" \
|
||||
--output-dir tools/flakes/out \
|
||||
--slack-webhook "$SLACK_WEBHOOK" \
|
||||
--run-id "$RUN_ID" \
|
||||
--ref-name "$REF_NAME" \
|
||||
--sha "$SHA"
|
||||
|
||||
- name: Upload generated reports
|
||||
uses: actions/upload-artifact@v4
|
||||
if: steps.process-flaky-tests.outcome == 'success'
|
||||
with:
|
||||
name: flaky-tests-reports-${{ github.run_number }}
|
||||
path: tools/flakes/out/*
|
||||
retention-days: 30
|
||||
@@ -1,185 +0,0 @@
|
||||
name: linters
|
||||
on:
|
||||
pull_request:
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
lint-actions:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
check-latest: true
|
||||
cache: true
|
||||
|
||||
- name: lint actions
|
||||
run: |
|
||||
echo "::add-matcher::.github/actionlint-matcher.json"
|
||||
bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
|
||||
make lint-actions
|
||||
shell: bash
|
||||
|
||||
lint-protos:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
check-latest: true
|
||||
cache: true
|
||||
|
||||
- uses: arduino/setup-protoc@v3
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: lint protobuf definitions
|
||||
run: |
|
||||
make lint-protos
|
||||
|
||||
lint-api:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
check-latest: true
|
||||
cache: true
|
||||
|
||||
- uses: arduino/setup-protoc@v3
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: lint protobuf API definitions
|
||||
run: |
|
||||
make lint-api
|
||||
|
||||
lint-workflows:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
check-latest: true
|
||||
cache: true
|
||||
|
||||
- uses: arduino/setup-protoc@v3
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: lint system workflows with workflowcheck
|
||||
run: make workflowcheck
|
||||
|
||||
fmt:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
check-latest: true
|
||||
cache: true
|
||||
|
||||
- name: format golang import statements
|
||||
run: |
|
||||
make fmt
|
||||
|
||||
- name: check-is-dirty
|
||||
run: |
|
||||
if [[ -n $(git status --porcelain) ]]; then
|
||||
echo "Detected uncommitted changes."
|
||||
git status
|
||||
git diff
|
||||
exit 1
|
||||
fi
|
||||
|
||||
parallelize-tests:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
check-latest: true
|
||||
cache: true
|
||||
|
||||
- name: check test parallelization
|
||||
run: make parallelize-tests
|
||||
|
||||
- name: check-is-dirty
|
||||
run: |
|
||||
if [[ -n $(git status --porcelain) ]]; then
|
||||
echo "Detected uncommitted changes after running parallelize-tests."
|
||||
echo "Run 'make parallelize-tests' locally and commit the changes."
|
||||
git status
|
||||
git diff
|
||||
exit 1
|
||||
fi
|
||||
|
||||
golangci:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
check-latest: true
|
||||
cache: true
|
||||
|
||||
- name: lint code
|
||||
run: |
|
||||
make GOLANGCI_LINT_FIX=false GOLANGCI_LINT_BASE_REV=HEAD~ lint-code
|
||||
|
||||
- name: check-is-dirty
|
||||
run: |
|
||||
if [[ -n $(git status --porcelain) ]]; then
|
||||
echo "Detected uncommitted changes."
|
||||
git status
|
||||
git diff
|
||||
exit 1
|
||||
fi
|
||||
|
||||
linters-succeed:
|
||||
name: All Linters Succeed
|
||||
needs:
|
||||
- fmt
|
||||
- lint-api
|
||||
- lint-protos
|
||||
- lint-actions
|
||||
- golangci
|
||||
- parallelize-tests
|
||||
runs-on: ubuntu-24.04-arm
|
||||
if: always()
|
||||
env:
|
||||
RESULTS: ${{ toJSON(needs.*.result) }}
|
||||
steps:
|
||||
- name: Check results
|
||||
run: |
|
||||
if [[ -n $(echo "$RESULTS" | jq '.[] | select (. != "success")') ]]; then
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,78 +0,0 @@
|
||||
name: Optimize Test Sharding
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Runs at 0700 UTC daily
|
||||
- cron: "0 7 * * *"
|
||||
workflow_dispatch: # Allow manual trigger
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
SALT_FILE: tests/testcore/shard_salt.txt
|
||||
BRANCH: auto/optimize-test-sharding
|
||||
|
||||
jobs:
|
||||
update-salts:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Generate GitHub token
|
||||
id: generate-token
|
||||
uses: actions/create-github-app-token@v2
|
||||
with:
|
||||
app-id: ${{ secrets.TEMPORAL_CICD_APP_ID }}
|
||||
private-key: ${{ secrets.TEMPORAL_CICD_PRIVATE_KEY }}
|
||||
owner: temporalio
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
ref: main
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: go.mod
|
||||
cache: true
|
||||
|
||||
- name: Optimize functional test sharding
|
||||
run: |
|
||||
# NOTE: shard count must match shards in run-tests.yml
|
||||
go run ./cmd/tools/optimize-test-sharding \
|
||||
-shards 3 \
|
||||
-workflow run-tests.yml \
|
||||
-artifact-pattern 'junit-xml--*shard*--functional-test' \
|
||||
-file "${{ env.SALT_FILE }}" \
|
||||
-threshold 0.05
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
|
||||
|
||||
- name: Create pull request
|
||||
run: |
|
||||
if git diff --quiet; then
|
||||
echo "No changes to shard salt"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Delete remote branch if it exists from a previous run.
|
||||
# This will also close a previous, stuck PR if it exists.
|
||||
git push origin --delete ${{ env.BRANCH }} 2>/dev/null || true
|
||||
|
||||
git config --local user.name 'Temporal Data'
|
||||
git config --local user.email '[email protected]'
|
||||
|
||||
git checkout -b ${{ env.BRANCH }}
|
||||
git add "${{ env.SALT_FILE }}"
|
||||
git commit -m "Update test shard salt"
|
||||
git push origin ${{ env.BRANCH }}
|
||||
|
||||
gh pr create \
|
||||
--title "Update test shard salt" \
|
||||
--body "Automatically generated by the optimize-test-sharding workflow."
|
||||
|
||||
gh pr merge ${{ env.BRANCH }} --auto --squash
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
|
||||
@@ -1,25 +0,0 @@
|
||||
name: Promote Admin Tools Image
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
source-tag:
|
||||
description: "Source tag from temporaliotest registry (e.g. sha-abc123)"
|
||||
required: true
|
||||
target-tags:
|
||||
description: "Target tags for temporalio registry (comma or newline separated, e.g., 1.29.1, latest)"
|
||||
required: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
promote:
|
||||
uses: ./.github/workflows/promote-docker-image.yml
|
||||
with:
|
||||
image-name: admin-tools
|
||||
source-tag: ${{ inputs.source-tag }}
|
||||
target-tags: ${{ inputs.target-tags }}
|
||||
secrets:
|
||||
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
@@ -1,122 +0,0 @@
|
||||
name: Promote Docker Image
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
image-name:
|
||||
description: "Image name (e.g., server, admin-tools)"
|
||||
required: true
|
||||
type: string
|
||||
source-tag:
|
||||
description: "Source tag from temporaliotest registry (e.g. sha-abc123)"
|
||||
required: true
|
||||
type: string
|
||||
target-tags:
|
||||
description: "Target tags for temporalio registry (comma or newline separated, e.g., 1.29.1, latest)"
|
||||
required: true
|
||||
type: string
|
||||
secrets:
|
||||
DOCKERHUB_USERNAME:
|
||||
required: true
|
||||
DOCKERHUB_TOKEN:
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
validate-inputs:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
source-tag-safe: ${{ steps.validate.outputs.source-tag }}
|
||||
target-tags-safe: ${{ steps.validate.outputs.target-tags }}
|
||||
steps:
|
||||
- name: Validate input tags
|
||||
id: validate
|
||||
uses: actions/github-script@v8
|
||||
env:
|
||||
SOURCE_TAG: ${{ inputs.source-tag }}
|
||||
TARGET_TAGS: ${{ inputs.target-tags }}
|
||||
with:
|
||||
script: |
|
||||
const sourceTag = process.env.SOURCE_TAG;
|
||||
const targetTagsInput = process.env.TARGET_TAGS;
|
||||
|
||||
// Source tag: must be short SHA (sha-XXXXXXX) or full sha256 digest
|
||||
// Examples: sha-b5b2dfe, sha256:082943409e71ae50d8dd8693593070eac8173f01fb5bfd4970ae59e52176753e
|
||||
const sourceTagPattern = /^sha-[a-f0-9]{7,}$|^sha256:[a-f0-9]{64}$/;
|
||||
|
||||
// Target tag: semantic version pattern (major.minor.patch.build or shorter)
|
||||
// Examples: 1.29.1, 1.29.1.1, 1.29, latest
|
||||
const targetTagPattern = /^(\d+\.)*\d+$|^latest$/;
|
||||
|
||||
// Validate source tag format
|
||||
if (!sourceTagPattern.test(sourceTag)) {
|
||||
core.setFailed('Error: Invalid source tag format. Must be sha-XXXXXXX or sha256:...');
|
||||
return;
|
||||
}
|
||||
|
||||
// Parse and validate target tags (split by newline or comma)
|
||||
const targetTags = targetTagsInput
|
||||
.split(/[\n,]/)
|
||||
.map(tag => tag.trim())
|
||||
.filter(tag => tag.length > 0);
|
||||
|
||||
if (targetTags.length === 0) {
|
||||
core.setFailed('Error: At least one target tag must be provided');
|
||||
return;
|
||||
}
|
||||
|
||||
for (const tag of targetTags) {
|
||||
if (!targetTagPattern.test(tag)) {
|
||||
core.setFailed(`Error: Invalid target tag format: "${tag}". Must be semantic version (e.g., 1.29.1, 1.29.1.1) or "latest"`);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
core.setOutput('source-tag', sourceTag);
|
||||
core.setOutput('target-tags', JSON.stringify(targetTags));
|
||||
|
||||
core.info('✓ Tag validation passed');
|
||||
core.info(` Source: ${sourceTag}`);
|
||||
core.info(` Target tags: ${targetTags.join(', ')}`);
|
||||
|
||||
promote:
|
||||
needs: [validate-inputs]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Pull, tag, and push image
|
||||
uses: actions/github-script@v8
|
||||
env:
|
||||
SOURCE_TAG: ${{ needs.validate-inputs.outputs.source-tag-safe }}
|
||||
TARGET_TAGS: ${{ needs.validate-inputs.outputs.target-tags-safe }}
|
||||
IMAGE_NAME: ${{ inputs.image-name }}
|
||||
with:
|
||||
script: |
|
||||
const { execSync } = require('child_process');
|
||||
const sourceTag = process.env.SOURCE_TAG;
|
||||
const targetTags = JSON.parse(process.env.TARGET_TAGS);
|
||||
const imageName = process.env.IMAGE_NAME;
|
||||
|
||||
core.info(`Promoting ${imageName} image...`);
|
||||
core.info(` From: temporaliotest/${imageName}:${sourceTag}`);
|
||||
core.info(` To: ${targetTags.map(t => `temporalio/${imageName}:${t}`).join(', ')}`);
|
||||
|
||||
// Pull from test registry
|
||||
core.info('Pulling source image...');
|
||||
execSync(`docker pull temporaliotest/${imageName}:${sourceTag}`, { stdio: 'inherit' });
|
||||
|
||||
// Tag for each target tag
|
||||
for (const targetTag of targetTags) {
|
||||
core.info(`Tagging as temporalio/${imageName}:${targetTag}`);
|
||||
execSync(`docker tag temporaliotest/${imageName}:${sourceTag} temporalio/${imageName}:${targetTag}`, { stdio: 'inherit' });
|
||||
}
|
||||
|
||||
// Push all tags at once
|
||||
core.info('Pushing all tags to production registry...');
|
||||
execSync(`docker push --all-tags temporalio/${imageName}`, { stdio: 'inherit' });
|
||||
|
||||
core.info(`✓ ${imageName} image promoted successfully to all tags`);
|
||||
@@ -1,25 +0,0 @@
|
||||
name: Promote Server Image
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
source-tag:
|
||||
description: "Source tag from temporaliotest registry (e.g. sha-abc123)"
|
||||
required: true
|
||||
target-tags:
|
||||
description: "Target tags for temporalio registry (comma or newline separated, e.g., 1.29.1, latest)"
|
||||
required: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
promote:
|
||||
uses: ./.github/workflows/promote-docker-image.yml
|
||||
with:
|
||||
image-name: server
|
||||
source-tag: ${{ inputs.source-tag }}
|
||||
target-tags: ${{ inputs.target-tags }}
|
||||
secrets:
|
||||
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
@@ -1,25 +0,0 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- released
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Build binaries
|
||||
uses: ./.github/actions/build-binaries
|
||||
with:
|
||||
snapshot: false
|
||||
release: true
|
||||
@@ -1,153 +0,0 @@
|
||||
name: Run Single Test
|
||||
run-name: ${{ inputs.test_name }}${{ inputs.test_dbs }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
commit:
|
||||
description: "Commit SHA"
|
||||
required: true
|
||||
run_functional_test:
|
||||
description: "Run a functional test (otherwise unit test)"
|
||||
type: boolean
|
||||
default: true
|
||||
unit_test_directory:
|
||||
description: "[Unit Test Only] Directory to run unit tests in"
|
||||
type: string
|
||||
default: "./temporal"
|
||||
n_runs:
|
||||
description: "Number of times to repeat the test (start with n=25 or lower to avoid OOMKill)"
|
||||
type: number
|
||||
default: 1
|
||||
test_name:
|
||||
description: "Name of the test to run (e.g. 'TestFunctionalSuite/TestUpdateWorkflow')"
|
||||
type: string
|
||||
required: true
|
||||
timeout_minutes:
|
||||
description: "Test timeout in minutes"
|
||||
type: number
|
||||
default: 120
|
||||
test_runner:
|
||||
description: "Which runner to use. Choose higher RAM if your n_runs is high."
|
||||
type: choice
|
||||
default: "16GB RAM (ubuntu-latest)"
|
||||
options:
|
||||
- "16GB RAM (ubuntu-latest)"
|
||||
- "64GB RAM (ubuntu-latest-16-cores)"
|
||||
test_dbs:
|
||||
description: '[Functional Test Only] DBs to test on (e.g. ["sqlite", "mysql8"])'
|
||||
type: string
|
||||
default: '["sqlite"]'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
COMMIT: ${{ inputs.commit }}
|
||||
DOCKER_COMPOSE_FILE: ./develop/github/docker-compose.yml
|
||||
TEMPORAL_VERSION_CHECK_DISABLED: 1
|
||||
|
||||
jobs:
|
||||
unit-test:
|
||||
if: ${{ inputs.run_functional_test != true }}
|
||||
name: Unit test
|
||||
runs-on: ${{ inputs.test_runner == '64GB RAM (ubuntu-latest-16-cores)' && 'ubuntu-latest-16-cores' || 'ubuntu-latest' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ env.COMMIT }}
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
|
||||
- name: Run unit test
|
||||
timeout-minutes: ${{ fromJSON(inputs.timeout_minutes) }}
|
||||
run: make unit-test-coverage
|
||||
env:
|
||||
UNIT_TEST_DIRS: ${{ inputs.unit_test_directory }}
|
||||
TEST_ARGS: "-run ${{ inputs.test_name }} -count ${{ inputs.n_runs }}"
|
||||
TEST_TIMEOUT: "${{ inputs.timeout_minutes }}m"
|
||||
|
||||
functional-test:
|
||||
if: ${{ inputs.run_functional_test == true }}
|
||||
name: Functional test (${{ matrix.name }})
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
name:
|
||||
- cass_es
|
||||
- cass_es8
|
||||
- cass_os2
|
||||
- cass_os3
|
||||
- sqlite
|
||||
- mysql8
|
||||
- postgres12
|
||||
- postgres12_pgx
|
||||
include:
|
||||
- name: cass_es
|
||||
persistence_type: nosql
|
||||
persistence_driver: cassandra
|
||||
containers: [cassandra, elasticsearch]
|
||||
runs_on_override: ubuntu-latest-8-cores
|
||||
- name: cass_es8
|
||||
persistence_type: nosql
|
||||
persistence_driver: cassandra
|
||||
containers: [cassandra, elasticsearch8]
|
||||
runs_on_override: ubuntu-latest-8-cores
|
||||
- name: cass_os2
|
||||
persistence_type: nosql
|
||||
persistence_driver: cassandra
|
||||
containers: [cassandra, opensearch2]
|
||||
- name: cass_os3
|
||||
persistence_type: nosql
|
||||
persistence_driver: cassandra
|
||||
containers: [cassandra, opensearch3]
|
||||
- name: sqlite
|
||||
persistence_type: sql
|
||||
persistence_driver: sqlite
|
||||
containers: []
|
||||
- name: mysql8
|
||||
persistence_type: sql
|
||||
persistence_driver: mysql8
|
||||
containers: [mysql]
|
||||
- name: postgres12
|
||||
persistence_type: sql
|
||||
persistence_driver: postgres12
|
||||
containers: [postgresql]
|
||||
- name: postgres12_pgx
|
||||
persistence_type: sql
|
||||
persistence_driver: postgres12_pgx
|
||||
containers: [postgresql]
|
||||
runs-on: ${{ inputs.test_runner == '64GB RAM (ubuntu-latest-16-cores)' && 'ubuntu-latest-16-cores' || (matrix.runs_on_override || 'ubuntu-latest') }}
|
||||
env:
|
||||
PERSISTENCE_TYPE: ${{ matrix.persistence_type }}
|
||||
PERSISTENCE_DRIVER: ${{ matrix.persistence_driver }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ contains(fromJSON(inputs.test_dbs), matrix.name) }}
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ env.COMMIT }}
|
||||
|
||||
- name: Start containerized dependencies
|
||||
if: ${{ contains(fromJSON(inputs.test_dbs), matrix.name) && toJson(matrix.containers) != '[]' }}
|
||||
uses: hoverkraft-tech/[email protected]
|
||||
with:
|
||||
compose-file: ${{ env.DOCKER_COMPOSE_FILE }}
|
||||
services: "${{ join(matrix.containers, '\n') }}"
|
||||
down-flags: -v
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
if: ${{ contains(fromJSON(inputs.test_dbs), matrix.name) }}
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
|
||||
- name: Run functional test
|
||||
if: ${{ contains(fromJSON(inputs.test_dbs), matrix.name) }}
|
||||
timeout-minutes: ${{ fromJSON(inputs.timeout_minutes) }}
|
||||
run: make functional-test-coverage
|
||||
env:
|
||||
TEST_ARGS: "-run ${{ inputs.test_name }} -count ${{ inputs.n_runs }}"
|
||||
TEST_TIMEOUT: "${{ inputs.timeout_minutes }}m"
|
||||
@@ -1,712 +0,0 @@
|
||||
name: All Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- cloud/*
|
||||
- feature/*
|
||||
- release/*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency: # Auto-cancel existing runs in the PR when a new commit is pushed
|
||||
group: run-tests-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
# For pull_request: use the head of the PR branch (not the merge branch which is the default!)
|
||||
# For push: use the pushed commit.
|
||||
COMMIT: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
PR_BASE_COMMIT: ${{ github.event.pull_request.base.sha }}
|
||||
DOCKER_COMPOSE_FILE: ./develop/github/docker-compose.yml
|
||||
TEMPORAL_VERSION_CHECK_DISABLED: 1
|
||||
MAX_TEST_ATTEMPTS: 3
|
||||
SHARD_COUNT: 3 # NOTE: must match shard count in optimize-test-sharding.yml
|
||||
|
||||
jobs:
|
||||
test-setup:
|
||||
name: Test setup
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
job_matrix: ${{ steps.build_matrix.outputs.job_matrix }}
|
||||
full_test_reason: ${{ steps.determine_scope.outputs.full_test_reason }}
|
||||
runner_arm: ${{ steps.configure_runners.outputs.runner_arm }}
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ env.COMMIT }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Fetch base branch
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
run: git fetch origin ${{ github.event.pull_request.base.ref }}:${{ github.event.pull_request.base.ref }}
|
||||
|
||||
- name: Compute merge base
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
run: |
|
||||
MERGE_BASE="$(git merge-base "${{ env.COMMIT }}" "${{ github.event.pull_request.base.ref }}")"
|
||||
echo "MERGE_BASE=${MERGE_BASE}" >> "$GITHUB_ENV"
|
||||
|
||||
# If possible, run the "abridged" jobs on PRs to save time.
|
||||
#
|
||||
# The goal is to still cover all persistence code paths:
|
||||
# 1. SQL
|
||||
# 2. NoSQL (ie Cassandra)
|
||||
# 3. Elasticsearch/OpenSearch
|
||||
# All other jobs for the remaining databases only run a small set of smoke tests.
|
||||
#
|
||||
# Exceptions to this optimization:
|
||||
# 1. commit is not a PR
|
||||
# 2. `test-all-dbs` label set on PR
|
||||
# 3. changes to persistence packages were made
|
||||
- name: Determine test scope
|
||||
id: determine_scope
|
||||
run: |
|
||||
FULL_TEST_REASON=""
|
||||
|
||||
event_name="${{ github.event_name }}"
|
||||
labels='${{ toJson(github.event.pull_request.labels.*.name) }}'
|
||||
merge_base="${MERGE_BASE:-}"
|
||||
|
||||
echo "event_name=$event_name"
|
||||
echo "labels=$labels"
|
||||
echo "merge_base=$merge_base"
|
||||
|
||||
# Push events (main, release branches) run all tests on all DBs
|
||||
if [[ "$event_name" == "push" ]]; then
|
||||
FULL_TEST_REASON="Running full tests on all DBs (push event)."
|
||||
# Check for test-all-dbs label
|
||||
elif echo "$labels" | jq -e 'any(. == "test-all-dbs")' > /dev/null 2>&1; then
|
||||
FULL_TEST_REASON="Running full tests on all DBs (test-all-dbs label)."
|
||||
# Check for persistence code changes
|
||||
elif [[ -n "$merge_base" ]]; then
|
||||
echo "Changed persistence files:"
|
||||
git diff --name-only "$merge_base" "$COMMIT" | grep -E "^(common/persistence/|schema/)" || echo "(none)"
|
||||
if git diff --name-only "$merge_base" "$COMMIT" | grep -qE "^(common/persistence/|schema/)"; then
|
||||
FULL_TEST_REASON="Running full tests on all DBs (persistence code changes)."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "full_test_reason=$FULL_TEST_REASON" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: ${{ steps.determine_scope.outputs.full_test_reason && 'ℹ️ Full tests' || 'ℹ️ Smoke tests' }}
|
||||
run: echo "::notice::${{ steps.determine_scope.outputs.full_test_reason || 'Running smoke tests on extended DBs. Add the test-all-dbs label to run all tests on all DBs.' }}"
|
||||
|
||||
- name: Configure runners
|
||||
id: configure_runners
|
||||
run: |
|
||||
# Use 8-core runners for temporalio org, standard runners for forks
|
||||
if [[ "${{ github.repository_owner }}" == "temporalio" ]]; then
|
||||
runner_arm="ubuntu-24.04-arm64-8-cores"
|
||||
else
|
||||
runner_arm="ubuntu-24.04-arm"
|
||||
fi
|
||||
echo "runner_arm=$runner_arm" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# Primary DBs always get full tests, extended DBs get smoke tests (1 job) in abridged PRs.
|
||||
- name: Build job matrix
|
||||
id: build_matrix
|
||||
env:
|
||||
FULL_TEST_REASON: ${{ steps.determine_scope.outputs.full_test_reason }}
|
||||
DB_CONFIGS: |
|
||||
cass_es:
|
||||
persistence_type: nosql
|
||||
persistence_driver: cassandra
|
||||
containers: [cassandra, elasticsearch]
|
||||
required: true
|
||||
cass_es8:
|
||||
persistence_type: nosql
|
||||
persistence_driver: cassandra
|
||||
containers: [cassandra, elasticsearch8]
|
||||
cass_os2:
|
||||
persistence_type: nosql
|
||||
persistence_driver: cassandra
|
||||
containers: [cassandra, opensearch2]
|
||||
cass_os3:
|
||||
persistence_type: nosql
|
||||
persistence_driver: cassandra
|
||||
containers: [cassandra, opensearch3]
|
||||
sqlite:
|
||||
persistence_type: sql
|
||||
persistence_driver: sqlite
|
||||
containers: []
|
||||
mysql8:
|
||||
persistence_type: sql
|
||||
persistence_driver: mysql8
|
||||
containers: [mysql]
|
||||
postgres12:
|
||||
persistence_type: sql
|
||||
persistence_driver: postgres12
|
||||
containers: [postgresql]
|
||||
required: true
|
||||
postgres12_pgx:
|
||||
persistence_type: sql
|
||||
persistence_driver: postgres12_pgx
|
||||
containers: [postgresql]
|
||||
JOB_TYPES: |
|
||||
functest:
|
||||
cmd: make functional-test-coverage
|
||||
test_timeout: 35m
|
||||
github_timeout: 40
|
||||
sharded: true
|
||||
smoke:
|
||||
cmd: make functional-test-coverage
|
||||
test_timeout: 5m
|
||||
github_timeout: 10
|
||||
test_args: '"-run=TestActivityTestSuite|TestSignalWorkflowTestSuite|TestWorkflowTestSuite"'
|
||||
ndc:
|
||||
cmd: make functional-test-ndc-coverage
|
||||
test_timeout: 10m
|
||||
github_timeout: 15
|
||||
xdc:
|
||||
cmd: make functional-test-xdc-coverage
|
||||
test_timeout: 30m
|
||||
github_timeout: 35
|
||||
run: |
|
||||
# Convert YAML inputs to JSON for jq.
|
||||
DBS_JSON=$(yq -o=json <<< "$DB_CONFIGS")
|
||||
JOBS_JSON=$(yq -o=json <<< "$JOB_TYPES")
|
||||
|
||||
# Build the job matrix as a JSON array.
|
||||
MATRIX=$(
|
||||
jq -c -n \
|
||||
--argjson dbs "$DBS_JSON" \
|
||||
--argjson jobs "$JOBS_JSON" \
|
||||
--argjson shard_count "$SHARD_COUNT" \
|
||||
--arg full_test_reason "$FULL_TEST_REASON" \
|
||||
'
|
||||
[
|
||||
$dbs | to_entries[] as $db |
|
||||
|
||||
# Full test suite for required DBs (or all DBs when full_test_reason is set).
|
||||
(if $db.value.required or ($full_test_reason != "") then
|
||||
$jobs | to_entries[] | select(.key != "smoke")
|
||||
else
|
||||
$jobs | to_entries[] | select(.key == "smoke")
|
||||
end) as $job |
|
||||
|
||||
# Base entry: merge db config + job config + name
|
||||
($db.value + ($job.value | del(.sharded)) + {name: $db.key}) as $base |
|
||||
|
||||
# If sharded, emit one entry per shard; otherwise emit one entry
|
||||
if $job.value.sharded then
|
||||
range($shard_count) as $i |
|
||||
$base + {
|
||||
display_name: "shard\($i)",
|
||||
shard_index: $i,
|
||||
total_shards: $shard_count
|
||||
}
|
||||
else
|
||||
$base + {display_name: $job.key}
|
||||
end
|
||||
]
|
||||
'
|
||||
)
|
||||
|
||||
echo "job_matrix=$MATRIX" >> "$GITHUB_OUTPUT"
|
||||
echo "Generated $(jq length <<< "$MATRIX") jobs"
|
||||
|
||||
pre-build:
|
||||
name: Pre-build for cache
|
||||
needs: test-setup
|
||||
runs-on: ${{ needs.test-setup.outputs.runner_arm }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ env.COMMIT }}
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
cache: false # do our own caching
|
||||
|
||||
- name: Restore dependencies
|
||||
id: restore-deps
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/go/pkg/mod
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-${{ hashFiles('go.mod') }}-deps-${{ hashFiles('go.sum') }}
|
||||
|
||||
- run: make pre-build-functional-test-coverage
|
||||
|
||||
- name: Save dependencies
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.restore-deps.outputs.cache-hit != 'true' }}
|
||||
with:
|
||||
path: ~/go/pkg/mod
|
||||
key: ${{ steps.restore-deps.outputs.cache-primary-key }}
|
||||
|
||||
- name: Save build outputs
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-build-${{ env.COMMIT }}
|
||||
|
||||
misc-checks:
|
||||
name: Misc checks
|
||||
needs: [pre-build, test-setup]
|
||||
runs-on: ${{ needs.test-setup.outputs.runner_arm }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ env.COMMIT }}
|
||||
# buf-breaking tries to compare HEAD against merge base so we need to be able to find it
|
||||
fetch-depth: 100
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
cache: false # do our own caching
|
||||
|
||||
- name: Restore dependencies
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/go/pkg/mod
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-${{ hashFiles('go.mod') }}-deps-${{ hashFiles('go.sum') }}
|
||||
|
||||
- name: Restore build outputs
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-build-${{ env.COMMIT }}
|
||||
|
||||
- uses: arduino/setup-protoc@v3
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- run: GOOS=windows GOARCH=amd64 make clean-bins bins
|
||||
|
||||
- run: GOOS=darwin GOARCH=arm64 make clean-bins bins
|
||||
|
||||
- run: make clean-bins ci-build-misc
|
||||
|
||||
unit-test:
|
||||
name: Unit test
|
||||
needs: [pre-build, test-setup]
|
||||
runs-on: ${{ needs.test-setup.outputs.runner_arm }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ env.COMMIT }}
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
cache: false # do our own caching
|
||||
|
||||
- name: Restore dependencies
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/go/pkg/mod
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-${{ hashFiles('go.mod') }}-deps-${{ hashFiles('go.sum') }}
|
||||
|
||||
- name: Restore build outputs
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-build-${{ env.COMMIT }}
|
||||
|
||||
- name: Run unit tests
|
||||
timeout-minutes: 20
|
||||
run: TEST_TIMEOUT=15m ./develop/github/monitor_test.sh make unit-test-coverage
|
||||
|
||||
- name: Print memory snapshot
|
||||
if: always()
|
||||
run: cat /tmp/memory_snapshot.txt || true
|
||||
|
||||
- name: Generate crash report
|
||||
if: failure() # if the tests failed, we would expect one JUnit XML report per attempt; otherwise it must have crashed
|
||||
run: |
|
||||
[ "$(find .testoutput -maxdepth 1 -name 'junit.*.xml' | wc -l)" -lt "$MAX_TEST_ATTEMPTS" ] &&
|
||||
CRASH_REPORT_NAME="$GITHUB_JOB" make report-test-crash
|
||||
|
||||
- name: Generate test summary
|
||||
uses: mikepenz/[email protected]
|
||||
if: failure()
|
||||
with:
|
||||
report_paths: ./.testoutput/junit.*.xml
|
||||
detailed_summary: true
|
||||
check_annotations: false
|
||||
annotate_only: true
|
||||
skip_annotations: true
|
||||
|
||||
- name: Upload code coverage to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
directory: ./.testoutput
|
||||
flags: unit-test
|
||||
|
||||
- name: Upload test results to Codecov
|
||||
if: ${{ !cancelled() }}
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
directory: ./.testoutput
|
||||
flags: unit-test
|
||||
report_type: test_results
|
||||
|
||||
- name: Get job ID
|
||||
id: get_job_id
|
||||
uses: ./.github/actions/get-job-id
|
||||
with:
|
||||
job_name: Unit test
|
||||
run_id: ${{ github.run_id }}
|
||||
|
||||
- name: Upload test results to GitHub
|
||||
# Can't pin to major because the action linter doesn't recognize the include-hidden-files flag.
|
||||
uses: actions/[email protected]
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: junit-xml--${{ github.run_id }}--${{ steps.get_job_id.outputs.job_id }}--${{ github.run_attempt }}--unit-test
|
||||
path: ./.testoutput/junit.*.xml
|
||||
include-hidden-files: true
|
||||
retention-days: 28
|
||||
|
||||
integration-test:
|
||||
name: Integration test
|
||||
needs: [pre-build, test-setup]
|
||||
runs-on: ${{ needs.test-setup.outputs.runner_arm }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ env.COMMIT }}
|
||||
|
||||
- name: Start containerized dependencies
|
||||
uses: hoverkraft-tech/[email protected]
|
||||
with:
|
||||
compose-file: ${{ env.DOCKER_COMPOSE_FILE }}
|
||||
services: |
|
||||
cassandra
|
||||
mysql
|
||||
postgresql
|
||||
down-flags: -v
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
cache: false # do our own caching
|
||||
|
||||
- name: Restore dependencies
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/go/pkg/mod
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-${{ hashFiles('go.mod') }}-deps-${{ hashFiles('go.sum') }}
|
||||
|
||||
- name: Restore build outputs
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-build-${{ env.COMMIT }}
|
||||
|
||||
- name: Wait for containerized dependencies to be healthy
|
||||
run: |
|
||||
# Word splitting is intentional here.
|
||||
# shellcheck disable=SC2046
|
||||
docker compose -f ${{ env.DOCKER_COMPOSE_FILE }} up --wait $(docker compose -f ${{ env.DOCKER_COMPOSE_FILE }} ps --services)
|
||||
|
||||
- name: Run integration test
|
||||
timeout-minutes: 15
|
||||
run: ./develop/github/monitor_test.sh make integration-test-coverage
|
||||
|
||||
- name: Print memory snapshot
|
||||
if: always()
|
||||
run: cat /tmp/memory_snapshot.txt || true
|
||||
|
||||
- name: Generate crash report
|
||||
if: failure() # if the tests failed, we would expect one JUnit XML report per attempt; otherwise it must have crashed
|
||||
run: |
|
||||
[ "$(find .testoutput -maxdepth 1 -name 'junit.*.xml' | wc -l)" -lt "$MAX_TEST_ATTEMPTS" ] &&
|
||||
CRASH_REPORT_NAME="$GITHUB_JOB" make report-test-crash
|
||||
|
||||
- name: Generate test summary
|
||||
uses: mikepenz/[email protected]
|
||||
if: failure()
|
||||
with:
|
||||
report_paths: ./.testoutput/junit.*.xml
|
||||
detailed_summary: true
|
||||
check_annotations: false
|
||||
annotate_only: true
|
||||
skip_annotations: true
|
||||
|
||||
- name: Upload code coverage to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
directory: ./.testoutput
|
||||
flags: integration-test
|
||||
|
||||
- name: Upload test results to Codecov
|
||||
if: ${{ !cancelled() }}
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
directory: ./.testoutput
|
||||
flags: integration-test
|
||||
report_type: test_results
|
||||
|
||||
- name: Get job ID
|
||||
id: get_job_id
|
||||
uses: ./.github/actions/get-job-id
|
||||
with:
|
||||
job_name: Integration test
|
||||
run_id: ${{ github.run_id }}
|
||||
|
||||
- name: Upload test results to GitHub
|
||||
# Can't pin to major because the action linter doesn't recognize the include-hidden-files flag.
|
||||
uses: actions/[email protected]
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: junit-xml--${{ github.run_id }}--${{ steps.get_job_id.outputs.job_id }}--${{ github.run_attempt }}--integration-test
|
||||
path: ./.testoutput/junit.*.xml
|
||||
include-hidden-files: true
|
||||
retention-days: 28
|
||||
|
||||
- name: Tear down docker compose
|
||||
if: ${{ always() }}
|
||||
run: |
|
||||
docker compose -f ${{ env.DOCKER_COMPOSE_FILE }} down -v
|
||||
|
||||
# Root job name includes matrix details so it is unique per job variant.
|
||||
# This MUST stay in sync with the `job_name` passed to the job-id action below.
|
||||
functional-test:
|
||||
# Display name shown in the UI. The job-id lookup uses this exact value.
|
||||
name: Functional test (${{ matrix.name }}, ${{ matrix.display_name }})
|
||||
needs: [pre-build, test-setup]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include: ${{ fromJson(needs.test-setup.outputs.job_matrix) }}
|
||||
runs-on: ${{ needs.test-setup.outputs.runner_arm }}
|
||||
env:
|
||||
PERSISTENCE_TYPE: ${{ matrix.persistence_type }}
|
||||
PERSISTENCE_DRIVER: ${{ matrix.persistence_driver }}
|
||||
TEST_TIMEOUT: ${{ matrix.test_timeout }}
|
||||
steps:
|
||||
- uses: ScribeMD/[email protected]
|
||||
with:
|
||||
key: docker-${{ runner.os }}${{ runner.arch }}-${{ hashFiles(env.DOCKER_COMPOSE_FILE) }}
|
||||
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ env.COMMIT }}
|
||||
|
||||
- name: Start containerized dependencies
|
||||
if: ${{ toJson(matrix.containers) != '[]' }}
|
||||
uses: hoverkraft-tech/[email protected]
|
||||
with:
|
||||
compose-file: ${{ env.DOCKER_COMPOSE_FILE }}
|
||||
services: "${{ join(matrix.containers, '\n') }}"
|
||||
down-flags: -v
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
cache: false # do our own caching
|
||||
|
||||
- name: Restore dependencies
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/go/pkg/mod
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-${{ hashFiles('go.mod') }}-deps-${{ hashFiles('go.sum') }}
|
||||
|
||||
- name: Restore build outputs
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-build-${{ env.COMMIT }}
|
||||
|
||||
- name: Get job ID
|
||||
id: get_job_id
|
||||
uses: ./.github/actions/get-job-id
|
||||
with:
|
||||
job_name: Functional test (${{ matrix.name }}, ${{ matrix.display_name }})
|
||||
run_id: ${{ github.run_id }}
|
||||
|
||||
- name: ${{ matrix.display_name == 'smoke' && 'ℹ️ Smoke test' || 'ℹ️ Full test' }}
|
||||
run: echo "::notice::${{ matrix.display_name == 'smoke' && 'This is a smoke test. Add the test-all-dbs label to run all tests on all DBs.' || needs.test-setup.outputs.full_test_reason }}"
|
||||
|
||||
- name: Wait for containerized dependencies to be healthy
|
||||
if: ${{ toJson(matrix.containers) != '[]' }}
|
||||
run: |
|
||||
# Word splitting is intentional here.
|
||||
# shellcheck disable=SC2046
|
||||
docker compose -f ${{ env.DOCKER_COMPOSE_FILE }} up --wait $(docker compose -f ${{ env.DOCKER_COMPOSE_FILE }} ps --services)
|
||||
|
||||
- name: Run functional test
|
||||
timeout-minutes: ${{ matrix.github_timeout }}
|
||||
run: ./develop/github/monitor_test.sh ${{ matrix.cmd }}
|
||||
env:
|
||||
TEST_TOTAL_SHARDS: ${{ matrix.total_shards }}
|
||||
TEST_SHARD_INDEX: ${{ matrix.total_shards && matrix.shard_index }} # guard with total_shards to avoid falsy eval of shard_index=0
|
||||
TEST_ARGS: "${{ matrix.test_args }}"
|
||||
|
||||
- name: Dump container logs
|
||||
if: ${{ failure() && toJson(matrix.containers) != '[]' }}
|
||||
run: docker compose -f ${{ env.DOCKER_COMPOSE_FILE }} logs --no-color
|
||||
|
||||
- name: Print memory snapshot
|
||||
if: always()
|
||||
run: cat /tmp/memory_snapshot.txt || true
|
||||
|
||||
- name: Generate crash report
|
||||
if: failure() # if the tests failed, we would expect one JUnit XML report per attempt; otherwise it must have crashed
|
||||
run: |
|
||||
[ "$(find .testoutput -maxdepth 1 -name 'junit.*.xml' | wc -l)" -lt "$MAX_TEST_ATTEMPTS" ] &&
|
||||
CRASH_REPORT_NAME="$GITHUB_JOB" make report-test-crash
|
||||
|
||||
- name: Generate test summary
|
||||
uses: mikepenz/[email protected]
|
||||
if: failure()
|
||||
with:
|
||||
report_paths: ./.testoutput/junit.*.xml
|
||||
detailed_summary: true
|
||||
check_annotations: false
|
||||
annotate_only: true
|
||||
skip_annotations: true
|
||||
|
||||
- name: Upload code coverage to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
directory: ./.testoutput
|
||||
flags: functional-test
|
||||
|
||||
- name: Upload test results to Codecov
|
||||
if: ${{ !cancelled() }}
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
directory: ./.testoutput
|
||||
flags: functional-test
|
||||
report_type: test_results
|
||||
|
||||
- name: Upload test results to GitHub
|
||||
# Can't pin to major because the action linter doesn't recognize the include-hidden-files flag.
|
||||
uses: actions/[email protected]
|
||||
if: ${{ !cancelled() }}
|
||||
with:
|
||||
name: junit-xml--${{ github.run_id }}--${{ steps.get_job_id.outputs.job_id }}--${{ github.run_attempt }}--${{ matrix.name }}--${{ matrix.display_name }}--functional-test
|
||||
path: ./.testoutput/junit.*.xml
|
||||
include-hidden-files: true
|
||||
retention-days: 28
|
||||
|
||||
mixed-brain-test:
|
||||
name: Mixed brain test
|
||||
needs: [pre-build, test-setup]
|
||||
runs-on: ${{ needs.test-setup.outputs.runner_arm }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
ref: ${{ env.COMMIT }}
|
||||
|
||||
- name: Start PostgreSQL
|
||||
uses: hoverkraft-tech/[email protected]
|
||||
with:
|
||||
compose-file: ${{ env.DOCKER_COMPOSE_FILE }}
|
||||
services: postgresql
|
||||
down-flags: -v
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
cache: false
|
||||
|
||||
- name: Restore dependencies
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/go/pkg/mod
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-${{ hashFiles('go.mod') }}-deps-${{ hashFiles('go.sum') }}
|
||||
|
||||
- name: Restore build outputs
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/.cache/go-build
|
||||
key: go-${{ runner.os }}${{ runner.arch }}-build-${{ env.COMMIT }}
|
||||
|
||||
- name: Install PostgreSQL schema
|
||||
run: make install-schema-postgresql12
|
||||
|
||||
- name: Run mixed brain test
|
||||
timeout-minutes: 20
|
||||
run: ./develop/github/monitor_test.sh make mixed-brain-test
|
||||
env:
|
||||
TEST_TIMEOUT: 18m
|
||||
MIXED_BRAIN_TEST_DURATION: 5m
|
||||
PERSISTENCE_DRIVER: postgres12
|
||||
|
||||
- name: Print memory snapshot
|
||||
if: always()
|
||||
run: cat /tmp/memory_snapshot.txt || true
|
||||
|
||||
- name: Print current server logs
|
||||
if: always()
|
||||
run: cat .testoutput/mixedbrain_process-current.log || true
|
||||
|
||||
- name: Print release server logs
|
||||
if: always()
|
||||
run: cat .testoutput/mixedbrain_process-release.log || true
|
||||
|
||||
- name: Print Omes logs
|
||||
if: always()
|
||||
run: cat .testoutput/mixedbrain_omes.log || true
|
||||
|
||||
test-status:
|
||||
if: always()
|
||||
name: Test Status
|
||||
needs:
|
||||
- misc-checks
|
||||
- unit-test
|
||||
- integration-test
|
||||
- functional-test
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RESULTS: ${{ toJSON(needs.*.result) }}
|
||||
steps:
|
||||
- name: Check results
|
||||
run: |
|
||||
# all statuses must be success
|
||||
if [[ -n $(echo "$RESULTS" | jq '.[] | select (. != "success")') ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
notify-failure:
|
||||
name: Notify Slack on Failure
|
||||
if: |
|
||||
always() &&
|
||||
github.ref == 'refs/heads/main' &&
|
||||
needs.test-status.result == 'failure'
|
||||
needs: test-status
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version-file: "go.mod"
|
||||
cache: true
|
||||
|
||||
- name: Send Slack notification
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
go run ./cmd/tools/ci-notify alert \
|
||||
--run-id "${{ github.run_id }}" \
|
||||
--slack-webhook "$SLACK_WEBHOOK"
|
||||
@@ -1,21 +0,0 @@
|
||||
name: Stale Pull Requests
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
stale_prs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: label stale pull requests
|
||||
uses: actions/stale@v9
|
||||
with:
|
||||
days-before-close: -1 # ie disabled
|
||||
days-before-stale: 120
|
||||
days-before-issue-stale: -1 # ie disabled
|
||||
stale-pr-label: stale
|
||||
stale-pr-message: 'This PR was marked as stale. Please update or close it.'
|
||||
@@ -1,39 +0,0 @@
|
||||
name: 'Trigger version-info-service release'
|
||||
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- published
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
trigger-vis:
|
||||
name: 'Trigger version-info-service release'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
steps:
|
||||
- name: Generate token
|
||||
id: generate_token
|
||||
uses: actions/create-github-app-token@v1
|
||||
with:
|
||||
app-id: ${{ secrets.TEMPORAL_CICD_APP_ID }}
|
||||
private-key: ${{ secrets.TEMPORAL_CICD_PRIVATE_KEY }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
repositories: |
|
||||
version-info-service
|
||||
|
||||
- name: Dispatch version-info-service Github Action
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||
VERSION: ${{ github.event.release.tag_name }}
|
||||
RELEASE_TIME: ${{ github.event.release.published_at }}
|
||||
run: |
|
||||
gh workflow run server-release.yml -R https://github.com/temporalio/version-info-service \
|
||||
-r main \
|
||||
-f version="${VERSION}" \
|
||||
-f release-time="${RELEASE_TIME}"
|
||||
+4
-4
@@ -11,7 +11,7 @@ snapshot:
|
||||
archives:
|
||||
- id: default
|
||||
ids:
|
||||
- temporal-server
|
||||
- tasksd
|
||||
- temporal-cassandra-tool
|
||||
- temporal-sql-tool
|
||||
- temporal-elasticsearch-tool
|
||||
@@ -24,9 +24,9 @@ archives:
|
||||
- ./config/*
|
||||
|
||||
builds:
|
||||
- id: temporal-server
|
||||
dir: cmd/server
|
||||
binary: temporal-server
|
||||
- id: tasksd
|
||||
dir: cmd/tasksd
|
||||
binary: tasksd
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
goos:
|
||||
|
||||
+2
-2
@@ -52,7 +52,7 @@ git clone https://github.com/temporalio/temporal.git
|
||||
|
||||
## Build
|
||||
|
||||
For the very first time build `temporal-server` and helper tools with simple `make` command:
|
||||
For the very first time build `tasksd` and helper tools with simple `make` command:
|
||||
|
||||
```bash
|
||||
make
|
||||
@@ -185,7 +185,7 @@ For general instructions, see [GoLand Debugging](https://www.jetbrains.com/help/
|
||||
|
||||
First, start the optional [runtime dependencies](#runtime-server-and-tests-prerequisites) if needed for the desired persistence option.
|
||||
|
||||
To run the server, ensure the Run Type is package. In "Package path", enter `go.temporal.io/server/cmd/server`.
|
||||
To run the server, ensure the Run Type is package. In "Package path", enter `github.com/hanzoai/tasks/cmd/tasksd`.
|
||||
In the "Program arguments" field, add the following:
|
||||
|
||||
```
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# Hanzo Tasks
|
||||
|
||||
Durable workflow execution engine for AI agent orchestration. Fork of [Temporal.io](https://github.com/temporalio/temporal) (MIT license).
|
||||
|
||||
## Module
|
||||
`github.com/hanzoai/tasks`
|
||||
|
||||
## Quick Start
|
||||
```bash
|
||||
go build ./cmd/tasksd/
|
||||
./tasksd start
|
||||
```
|
||||
|
||||
## Integration
|
||||
- Playground imports `go.temporal.io/sdk` and connects to Hanzo Tasks server
|
||||
- Base embeds Tasks for durable cron/batch execution
|
||||
- Each playground space = a Tasks namespace
|
||||
- Each agent = a Tasks worker
|
||||
|
||||
## Rebrand Notes (2026-03-19)
|
||||
- `go.temporal.io/server` replaced with `github.com/hanzoai/tasks` in all Go files, go.mod, go.sum
|
||||
- `cmd/server` renamed to `cmd/tasksd`, binary name is `tasksd`
|
||||
- Docker images: `hanzoai/tasks` (was `temporalio/server`)
|
||||
- External deps (`go.temporal.io/sdk`, `go.temporal.io/api`) are NOT changed -- those are separate repos
|
||||
- Wire-protocol client names (`temporal-server` in headers/version_checker.go, metadata keys in client/history/metadata.go) preserved to maintain backward compatibility with existing Temporal SDK clients
|
||||
@@ -3,7 +3,7 @@
|
||||
install: bins
|
||||
|
||||
# Rebuild binaries (used by Dockerfile).
|
||||
bins: temporal-server temporal-cassandra-tool temporal-sql-tool temporal-elasticsearch-tool tdbg
|
||||
bins: tasksd temporal-cassandra-tool temporal-sql-tool temporal-elasticsearch-tool tdbg
|
||||
|
||||
# Install all tools, recompile proto files, run all possible checks and tests (long but comprehensive).
|
||||
all: clean proto bins check test
|
||||
@@ -341,17 +341,17 @@ update-go-api:
|
||||
##### Binaries #####
|
||||
clean-bins:
|
||||
@printf $(COLOR) "Delete old binaries..."
|
||||
@rm -f temporal-server
|
||||
@rm -f temporal-server-debug
|
||||
@rm -f tasksd
|
||||
@rm -f tasksd-debug
|
||||
@rm -f temporal-cassandra-tool
|
||||
@rm -f tdbg
|
||||
@rm -f fairsim
|
||||
@rm -f temporal-sql-tool
|
||||
@rm -f temporal-elasticsearch-tool
|
||||
|
||||
temporal-server: $(ALL_SRC)
|
||||
@printf $(COLOR) "Build temporal-server with CGO_ENABLED=$(CGO_ENABLED) for $(GOOS)/$(GOARCH)..."
|
||||
CGO_ENABLED=$(CGO_ENABLED) go build $(BUILD_TAG_FLAG) -o temporal-server ./cmd/server
|
||||
tasksd: $(ALL_SRC)
|
||||
@printf $(COLOR) "Build tasksd with CGO_ENABLED=$(CGO_ENABLED) for $(GOOS)/$(GOARCH)..."
|
||||
CGO_ENABLED=$(CGO_ENABLED) go build $(BUILD_TAG_FLAG) -o tasksd ./cmd/tasksd
|
||||
|
||||
tdbg: $(ALL_SRC)
|
||||
@printf $(COLOR) "Build tdbg with CGO_ENABLED=$(CGO_ENABLED) for $(GOOS)/$(GOARCH)..."
|
||||
@@ -373,9 +373,9 @@ temporal-elasticsearch-tool: $(ALL_SRC)
|
||||
@printf $(COLOR) "Build temporal-elasticsearch-tool with CGO_ENABLED=$(CGO_ENABLED) for $(GOOS)/$(GOARCH)..."
|
||||
CGO_ENABLED=$(CGO_ENABLED) go build $(BUILD_TAG_FLAG) -o temporal-elasticsearch-tool ./cmd/tools/elasticsearch
|
||||
|
||||
temporal-server-debug: $(ALL_SRC)
|
||||
@printf $(COLOR) "Build temporal-server-debug with CGO_ENABLED=$(CGO_ENABLED) for $(GOOS)/$(GOARCH)..."
|
||||
CGO_ENABLED=$(CGO_ENABLED) go build $(BUILD_TAG_FLAG),TEMPORAL_DEBUG -o temporal-server-debug ./cmd/server
|
||||
tasksd-debug: $(ALL_SRC)
|
||||
@printf $(COLOR) "Build tasksd-debug with CGO_ENABLED=$(CGO_ENABLED) for $(GOOS)/$(GOARCH)..."
|
||||
CGO_ENABLED=$(CGO_ENABLED) go build $(BUILD_TAG_FLAG),TEMPORAL_DEBUG -o tasksd-debug ./cmd/tasksd
|
||||
|
||||
##### Checks #####
|
||||
goimports: fmt-imports $(GOIMPORTS)
|
||||
@@ -648,48 +648,48 @@ stop-dependencies-cdc:
|
||||
|
||||
start: start-sqlite
|
||||
|
||||
start-cass-es: temporal-server
|
||||
./temporal-server --config-file config/development-cass-es.yaml --allow-no-auth start
|
||||
start-cass-es: tasksd
|
||||
./tasksd --config-file config/development-cass-es.yaml --allow-no-auth start
|
||||
|
||||
start-cass-archival: temporal-server
|
||||
./temporal-server --config-file config/development-cass-archival.yaml --allow-no-auth start
|
||||
start-cass-archival: tasksd
|
||||
./tasksd --config-file config/development-cass-archival.yaml --allow-no-auth start
|
||||
|
||||
start-cass-es-dual: temporal-server
|
||||
./temporal-server --config-file config/development-cass-es-dual.yaml --allow-no-auth start
|
||||
start-cass-es-dual: tasksd
|
||||
./tasksd --config-file config/development-cass-es-dual.yaml --allow-no-auth start
|
||||
|
||||
start-cass-es-custom: temporal-server
|
||||
./temporal-server --config-file config/development-cass-es-custom.yaml --allow-no-auth start
|
||||
start-cass-es-custom: tasksd
|
||||
./tasksd --config-file config/development-cass-es-custom.yaml --allow-no-auth start
|
||||
|
||||
start-es-fi: temporal-server
|
||||
./temporal-server --config-file config/development-cass-es-fi.yaml --allow-no-auth start
|
||||
start-es-fi: tasksd
|
||||
./tasksd --config-file config/development-cass-es-fi.yaml --allow-no-auth start
|
||||
|
||||
start-mysql: start-mysql8
|
||||
|
||||
start-mysql8: temporal-server
|
||||
./temporal-server --config-file config/development-mysql8.yaml --allow-no-auth start
|
||||
start-mysql8: tasksd
|
||||
./tasksd --config-file config/development-mysql8.yaml --allow-no-auth start
|
||||
|
||||
start-mysql-es: temporal-server
|
||||
./temporal-server --config-file config/development-mysql-es.yaml --allow-no-auth start
|
||||
start-mysql-es: tasksd
|
||||
./tasksd --config-file config/development-mysql-es.yaml --allow-no-auth start
|
||||
|
||||
start-postgres: start-postgres12
|
||||
|
||||
start-postgres12: temporal-server
|
||||
./temporal-server --config-file config/development-postgres12.yaml --allow-no-auth start
|
||||
start-postgres12: tasksd
|
||||
./tasksd --config-file config/development-postgres12.yaml --allow-no-auth start
|
||||
|
||||
start-sqlite: temporal-server
|
||||
./temporal-server --config-file config/development-sqlite.yaml --allow-no-auth start
|
||||
start-sqlite: tasksd
|
||||
./tasksd --config-file config/development-sqlite.yaml --allow-no-auth start
|
||||
|
||||
start-sqlite-file: temporal-server
|
||||
./temporal-server --config-file config/development-sqlite-file.yaml --allow-no-auth start
|
||||
start-sqlite-file: tasksd
|
||||
./tasksd --config-file config/development-sqlite-file.yaml --allow-no-auth start
|
||||
|
||||
start-xdc-cluster-a: temporal-server
|
||||
./temporal-server --config-file config/development-cluster-a.yaml --allow-no-auth start
|
||||
start-xdc-cluster-a: tasksd
|
||||
./tasksd --config-file config/development-cluster-a.yaml --allow-no-auth start
|
||||
|
||||
start-xdc-cluster-b: temporal-server
|
||||
./temporal-server --config-file config/development-cluster-b.yaml --allow-no-auth start
|
||||
start-xdc-cluster-b: tasksd
|
||||
./tasksd --config-file config/development-cluster-b.yaml --allow-no-auth start
|
||||
|
||||
start-xdc-cluster-c: temporal-server
|
||||
./temporal-server --config-file config/development-cluster-c.yaml --allow-no-auth start
|
||||
start-xdc-cluster-c: tasksd
|
||||
./tasksd --config-file config/development-cluster-c.yaml --allow-no-auth start
|
||||
|
||||
##### Grafana #####
|
||||
update-dashboards:
|
||||
|
||||
@@ -1,80 +1,78 @@
|
||||
<div class="title-block" style="text-align: center;" align="center">
|
||||
|
||||
# Temporal—durable execution platform
|
||||
# Hanzo Tasks
|
||||
|
||||
<p><img title="temporal logo" src="https://avatars.githubusercontent.com/u/56493103?s=320" width="320" height="320"></p>
|
||||
Durable workflow execution engine for AI agent orchestration.
|
||||
|
||||
[](https://github.com/temporalio/temporal/releases/latest)
|
||||
[](https://github.com/temporalio/temporal/blob/main/LICENSE)
|
||||
[](https://app.codecov.io/gh/temporalio/temporal)
|
||||
[](https://community.temporal.io)
|
||||
[](https://goreportcard.com/report/github.com/temporalio/temporal)
|
||||
|
||||
**[Introduction](#introduction) • **
|
||||
**[Getting Started](#getting-started) • **
|
||||
**[Contributing](#contributing) • **
|
||||
**[Temporal Docs](https://docs.temporal.io/) • **
|
||||
**[Temporal 101](https://learn.temporal.io/courses/temporal_101/)**
|
||||
[](https://github.com/hanzoai/tasks/blob/main/LICENSE)
|
||||
|
||||
</div>
|
||||
|
||||
## Introduction
|
||||
|
||||
Temporal is a durable execution platform that enables developers to build scalable applications without sacrificing productivity or reliability.
|
||||
The Temporal server executes units of application logic called Workflows in a resilient manner that automatically handles intermittent failures, and retries failed operations.
|
||||
Hanzo Tasks is a durable execution engine that powers AI agent orchestration in the Hanzo ecosystem. It enables developers to build scalable, fault-tolerant workflows that automatically handle intermittent failures and retry failed operations.
|
||||
|
||||
Temporal is a mature technology that originated as a fork of Uber's Cadence.
|
||||
It is developed by [Temporal Technologies](https://temporal.io/), a startup by the creators of Cadence.
|
||||
Tasks provides the backbone for:
|
||||
- **Playground spaces** -- each space maps to a Tasks namespace
|
||||
- **Agent execution** -- each agent runs as a Tasks worker
|
||||
- **Durable cron and batch jobs** -- reliable scheduled and bulk operations
|
||||
|
||||
[](https://youtu.be/wIpz4ioK0gI 'Getting to know Temporal')
|
||||
Fork of [Temporal.io](https://github.com/temporalio/temporal) (MIT license).
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Download and Start Temporal Server Locally
|
||||
|
||||
Execute the following commands to start a pre-built image along with all the dependencies.
|
||||
### Build
|
||||
|
||||
```bash
|
||||
brew install temporal
|
||||
temporal server start-dev
|
||||
make tasksd
|
||||
```
|
||||
|
||||
Refer to [Temporal CLI](https://docs.temporal.io/cli/#installation) documentation for more installation options.
|
||||
|
||||
### Run the Samples
|
||||
|
||||
Clone or download samples for [Go](https://github.com/temporalio/samples-go) or [Java](https://github.com/temporalio/samples-java) and run them with the local Temporal server.
|
||||
We have a number of [HelloWorld type scenarios](https://github.com/temporalio/samples-java#helloworld) available, as well as more advanced ones. Note that the sets of samples are currently different between Go and Java.
|
||||
|
||||
### Use CLI
|
||||
|
||||
Use [Temporal CLI](https://docs.temporal.io/cli/) to interact with the running Temporal server.
|
||||
### Run
|
||||
|
||||
```bash
|
||||
temporal operator namespace list
|
||||
temporal workflow list
|
||||
./tasksd start
|
||||
```
|
||||
|
||||
### Use Temporal Web UI
|
||||
Or with a config file:
|
||||
|
||||
Try [Temporal Web UI](https://docs.temporal.io/web-ui) by opening [http://localhost:8233](http://localhost:8233) for viewing your sample workflows executing on Temporal.
|
||||
```bash
|
||||
./tasksd --config-file config/development-sqlite.yaml --allow-no-auth start
|
||||
```
|
||||
|
||||
### Build from source
|
||||
|
||||
```bash
|
||||
go build ./cmd/tasksd/
|
||||
./tasksd start
|
||||
```
|
||||
|
||||
## Module
|
||||
|
||||
```
|
||||
github.com/hanzoai/tasks
|
||||
```
|
||||
|
||||
## Integration
|
||||
|
||||
Hanzo Tasks integrates with the broader Hanzo ecosystem:
|
||||
|
||||
- **Playground** imports `go.temporal.io/sdk` (the client SDK) and connects to the Tasks server
|
||||
- **Base** embeds Tasks for durable cron/batch execution
|
||||
- Each playground **space** = a Tasks namespace
|
||||
- Each **agent** = a Tasks worker
|
||||
|
||||
## Repository
|
||||
|
||||
This repository contains the source code of the Temporal server. To implement Workflows, Activities and Workers, use one of the [supported languages](https://docs.temporal.io/dev-guide/).
|
||||
This repository contains the source code of the Hanzo Tasks server. To implement Workflows, Activities, and Workers, use the [Temporal Go SDK](https://github.com/temporalio/sdk-go) or other [supported language SDKs](https://docs.temporal.io/dev-guide/).
|
||||
|
||||
## Architecture
|
||||
|
||||
See [docs/architecture/README.md](./docs/architecture/README.md) for server architecture details.
|
||||
|
||||
## Contributing
|
||||
|
||||
We'd love your help in making Temporal great.
|
||||
|
||||
Helpful links to get started:
|
||||
|
||||
- [work on or propose a new feature](https://github.com/temporalio/proposals)
|
||||
- [learn about the Temporal Server architecture](./docs/architecture/README.md)
|
||||
- [learn how to build and run the Temporal Server locally](./CONTRIBUTING.md)
|
||||
- [learn about Temporal Server testing tools and best practices](./docs/development/testing.md)
|
||||
- join the Temporal community [forum](https://community.temporal.io) and [Slack](https://t.mp/slack)
|
||||
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup and guidelines.
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](https://github.com/temporalio/temporal/blob/main/LICENSE)
|
||||
[MIT License](https://github.com/hanzoai/tasks/blob/main/LICENSE)
|
||||
|
||||
@@ -19,15 +19,15 @@ import (
|
||||
v115 "go.temporal.io/api/taskqueue/v1"
|
||||
v19 "go.temporal.io/api/version/v1"
|
||||
v17 "go.temporal.io/api/workflow/v1"
|
||||
v18 "go.temporal.io/server/api/cluster/v1"
|
||||
v112 "go.temporal.io/server/api/common/v1"
|
||||
v14 "go.temporal.io/server/api/enums/v1"
|
||||
v113 "go.temporal.io/server/api/health/v1"
|
||||
v11 "go.temporal.io/server/api/history/v1"
|
||||
v13 "go.temporal.io/server/api/namespace/v1"
|
||||
v12 "go.temporal.io/server/api/persistence/v1"
|
||||
v15 "go.temporal.io/server/api/replication/v1"
|
||||
v114 "go.temporal.io/server/api/taskqueue/v1"
|
||||
v18 "github.com/hanzoai/tasks/api/cluster/v1"
|
||||
v112 "github.com/hanzoai/tasks/api/common/v1"
|
||||
v14 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
v113 "github.com/hanzoai/tasks/api/health/v1"
|
||||
v11 "github.com/hanzoai/tasks/api/history/v1"
|
||||
v13 "github.com/hanzoai/tasks/api/namespace/v1"
|
||||
v12 "github.com/hanzoai/tasks/api/persistence/v1"
|
||||
v15 "github.com/hanzoai/tasks/api/replication/v1"
|
||||
v114 "github.com/hanzoai/tasks/api/taskqueue/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
durationpb "google.golang.org/protobuf/types/known/durationpb"
|
||||
@@ -6171,7 +6171,7 @@ const file_temporal_server_api_adminservice_v1_request_response_proto_rawDesc =
|
||||
"\x1cSCHEDULER_TARGET_UNSPECIFIED\x10\x00\x12\x1a\n" +
|
||||
"\x16SCHEDULER_TARGET_CHASM\x10\x01\x12\x1d\n" +
|
||||
"\x19SCHEDULER_TARGET_WORKFLOW\x10\x02\"\x19\n" +
|
||||
"\x17MigrateScheduleResponseB8Z6go.temporal.io/server/api/adminservice/v1;adminserviceb\x06proto3"
|
||||
"\x17MigrateScheduleResponseB8Z6github.com/hanzoai/tasks/api/adminservice/v1;adminserviceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_adminservice_v1_request_response_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
reflect "reflect"
|
||||
unsafe "unsafe"
|
||||
|
||||
_ "go.temporal.io/server/api/common/v1"
|
||||
_ "github.com/hanzoai/tasks/api/common/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -75,7 +75,7 @@ const file_temporal_server_api_adminservice_v1_service_proto_rawDesc = "" +
|
||||
"#GenerateLastHistoryReplicationTasks\x12O.temporal.server.api.adminservice.v1.GenerateLastHistoryReplicationTasksRequest\x1aP.temporal.server.api.adminservice.v1.GenerateLastHistoryReplicationTasksResponse\"\x06\x8a\xb5\x18\x02\b\x03\x12\xb5\x01\n" +
|
||||
"\x1aDescribeTaskQueuePartition\x12F.temporal.server.api.adminservice.v1.DescribeTaskQueuePartitionRequest\x1aG.temporal.server.api.adminservice.v1.DescribeTaskQueuePartitionResponse\"\x06\x8a\xb5\x18\x02\b\x03\x12\xbe\x01\n" +
|
||||
"\x1dForceUnloadTaskQueuePartition\x12I.temporal.server.api.adminservice.v1.ForceUnloadTaskQueuePartitionRequest\x1aJ.temporal.server.api.adminservice.v1.ForceUnloadTaskQueuePartitionResponse\"\x06\x8a\xb5\x18\x02\b\x03\x12\x94\x01\n" +
|
||||
"\x0fMigrateSchedule\x12;.temporal.server.api.adminservice.v1.MigrateScheduleRequest\x1a<.temporal.server.api.adminservice.v1.MigrateScheduleResponse\"\x06\x8a\xb5\x18\x02\b\x03B8Z6go.temporal.io/server/api/adminservice/v1;adminserviceb\x06proto3"
|
||||
"\x0fMigrateSchedule\x12;.temporal.server.api.adminservice.v1.MigrateScheduleRequest\x1a<.temporal.server.api.adminservice.v1.MigrateScheduleResponse\"\x06\x8a\xb5\x18\x02\b\x03B8Z6github.com/hanzoai/tasks/api/adminservice/v1;adminserviceb\x06proto3"
|
||||
|
||||
var file_temporal_server_api_adminservice_v1_service_proto_goTypes = []any{
|
||||
(*RebuildMutableStateRequest)(nil), // 0: temporal.server.api.adminservice.v1.RebuildMutableStateRequest
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
context "context"
|
||||
reflect "reflect"
|
||||
|
||||
adminservice "go.temporal.io/server/api/adminservice/v1"
|
||||
adminservice "github.com/hanzoai/tasks/api/adminservice/v1"
|
||||
gomock "go.uber.org/mock/gomock"
|
||||
grpc "google.golang.org/grpc"
|
||||
metadata "google.golang.org/grpc/metadata"
|
||||
|
||||
@@ -387,7 +387,7 @@ const file_temporal_server_api_archiver_v1_message_proto_rawDesc = "" +
|
||||
"\x12execution_duration\x18\x0e \x01(\v2\x19.google.protobuf.DurationR\x11executionDuration\x1aC\n" +
|
||||
"\x15SearchAttributesEntry\x12\x10\n" +
|
||||
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B0Z.go.temporal.io/server/api/archiver/v1;archiverb\x06proto3"
|
||||
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B0Z.github.com/hanzoai/tasks/api/archiver/v1;archiverb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_archiver_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
|
||||
v1 "go.temporal.io/api/enums/v1"
|
||||
v11 "go.temporal.io/api/workflowservice/v1"
|
||||
v12 "go.temporal.io/server/api/adminservice/v1"
|
||||
v12 "github.com/hanzoai/tasks/api/adminservice/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
durationpb "google.golang.org/protobuf/types/known/durationpb"
|
||||
@@ -145,7 +145,7 @@ const file_temporal_server_api_batch_v1_request_response_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"batch_type\x18\x06 \x01(\x0e2).temporal.api.enums.v1.BatchOperationTypeR\tbatchType\x12U\n" +
|
||||
"\arequest\x18\a \x01(\v2;.temporal.api.workflowservice.v1.StartBatchOperationRequestR\arequest\x12i\n" +
|
||||
"\radmin_request\x18\b \x01(\v2D.temporal.server.api.adminservice.v1.StartAdminBatchOperationRequestR\fadminRequestB*Z(go.temporal.io/server/api/batch/v1;batchb\x06proto3"
|
||||
"\radmin_request\x18\b \x01(\v2D.temporal.server.api.adminservice.v1.StartAdminBatchOperationRequestR\fadminRequestB*Z(github.com/hanzoai/tasks/api/batch/v1;batchb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_batch_v1_request_response_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -12,8 +12,8 @@ import (
|
||||
unsafe "unsafe"
|
||||
|
||||
v11 "go.temporal.io/api/enums/v1"
|
||||
v1 "go.temporal.io/server/api/enums/v1"
|
||||
v12 "go.temporal.io/server/api/history/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
v12 "github.com/hanzoai/tasks/api/history/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -301,7 +301,7 @@ const file_temporal_server_api_checksum_v1_message_proto_rawDesc = "" +
|
||||
"!pending_child_initiated_event_ids\x18\x12 \x03(\x03R\x1dpendingChildInitiatedEventIds\x127\n" +
|
||||
"\x18pending_chasm_node_paths\x18\x1a \x03(\tR\x15pendingChasmNodePaths\x123\n" +
|
||||
"\x16sticky_task_queue_name\x18\x13 \x01(\tR\x13stickyTaskQueueName\x12]\n" +
|
||||
"\x11version_histories\x18\x14 \x01(\v20.temporal.server.api.history.v1.VersionHistoriesR\x10versionHistoriesB0Z.go.temporal.io/server/api/checksum/v1;checksumb\x06proto3"
|
||||
"\x11version_histories\x18\x14 \x01(\v20.temporal.server.api.history.v1.VersionHistoriesR\x10versionHistoriesB0Z.github.com/hanzoai/tasks/api/checksum/v1;checksumb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_checksum_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -658,7 +658,7 @@ const file_temporal_server_api_cli_v1_message_proto_rawDesc = "" +
|
||||
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a:\n" +
|
||||
"\fMappingEntry\x12\x10\n" +
|
||||
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B&Z$go.temporal.io/server/api/cli/v1;clib\x06proto3"
|
||||
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B&Z$github.com/hanzoai/tasks/api/cli/v1;clib\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_cli_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -165,7 +165,7 @@ const file_temporal_server_api_clock_v1_message_proto_rawDesc = "" +
|
||||
"wall_clock\x18\x01 \x01(\x03R\twallClock\x12\x18\n" +
|
||||
"\aversion\x18\x02 \x01(\x05R\aversion\x12\x1d\n" +
|
||||
"\n" +
|
||||
"cluster_id\x18\x03 \x01(\x03R\tclusterIdB*Z(go.temporal.io/server/api/clock/v1;clockb\x06proto3"
|
||||
"cluster_id\x18\x03 \x01(\x03R\tclusterIdB*Z(github.com/hanzoai/tasks/api/clock/v1;clockb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_clock_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
sync "sync"
|
||||
unsafe "unsafe"
|
||||
|
||||
v1 "go.temporal.io/server/api/enums/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
||||
@@ -303,7 +303,7 @@ const file_temporal_server_api_cluster_v1_message_proto_rawDesc = "" +
|
||||
"\brpc_port\x18\x04 \x01(\x05R\arpcPort\x12H\n" +
|
||||
"\x12session_start_time\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\x10sessionStartTime\x12H\n" +
|
||||
"\x12last_heartbit_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\x10lastHeartbitTime\x12H\n" +
|
||||
"\x12record_expiry_time\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\x10recordExpiryTimeB.Z,go.temporal.io/server/api/cluster/v1;clusterb\x06proto3"
|
||||
"\x12record_expiry_time\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\x10recordExpiryTimeB.Z,github.com/hanzoai/tasks/api/cluster/v1;clusterb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_cluster_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -171,7 +171,7 @@ const file_temporal_server_api_common_v1_api_category_proto_rawDesc = "" +
|
||||
"\x15API_CATEGORY_STANDARD\x10\x01\x12\x1a\n" +
|
||||
"\x16API_CATEGORY_LONG_POLL\x10\x02\x12\x17\n" +
|
||||
"\x13API_CATEGORY_SYSTEM\x10\x03:y\n" +
|
||||
"\fapi_category\x12\x1e.google.protobuf.MethodOptions\x18ц\x03 \x01(\v21.temporal.server.api.common.v1.ApiCategoryOptionsR\vapiCategory\x88\x01\x01B/Z-go.temporal.io/server/api/common/v1;commonspbb\x06proto3"
|
||||
"\fapi_category\x12\x1e.google.protobuf.MethodOptions\x18ц\x03 \x01(\v21.temporal.server.api.common.v1.ApiCategoryOptionsR\vapiCategory\x88\x01\x01B/Z-github.com/hanzoai/tasks/api/common/v1;commonspbb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_common_v1_api_category_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -261,7 +261,7 @@ const file_temporal_server_api_common_v1_dlq_proto_rawDesc = "" +
|
||||
"\rHistoryDLQKey\x12#\n" +
|
||||
"\rtask_category\x18\x01 \x01(\x05R\ftaskCategory\x12%\n" +
|
||||
"\x0esource_cluster\x18\x02 \x01(\tR\rsourceCluster\x12%\n" +
|
||||
"\x0etarget_cluster\x18\x03 \x01(\tR\rtargetClusterB/Z-go.temporal.io/server/api/common/v1;commonspbb\x06proto3"
|
||||
"\x0etarget_cluster\x18\x03 \x01(\tR\rtargetClusterB/Z-github.com/hanzoai/tasks/api/common/v1;commonspbb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_common_v1_dlq_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -3678,7 +3678,7 @@ const file_temporal_server_api_deployment_v1_message_proto_rawDesc = "" +
|
||||
"\x1cForceCANDeploymentSignalArgs\x12d\n" +
|
||||
"\x0eoverride_state\x18\x01 \x01(\v2=.temporal.server.api.deployment.v1.WorkerDeploymentLocalStateR\roverrideState\"x\n" +
|
||||
"\x19ForceCANVersionSignalArgs\x12[\n" +
|
||||
"\x0eoverride_state\x18\x01 \x01(\v24.temporal.server.api.deployment.v1.VersionLocalStateR\roverrideStateB4Z2go.temporal.io/server/api/deployment/v1;deploymentb\x06proto3"
|
||||
"\x0eoverride_state\x18\x01 \x01(\v24.temporal.server.api.deployment.v1.VersionLocalStateR\roverrideStateB4Z2github.com/hanzoai/tasks/api/deployment/v1;deploymentb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_deployment_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -181,7 +181,7 @@ const file_temporal_server_api_enums_v1_cluster_proto_rawDesc = "" +
|
||||
"\x14HEALTH_STATE_SERVING\x10\x01\x12\x1c\n" +
|
||||
"\x18HEALTH_STATE_NOT_SERVING\x10\x02\x12!\n" +
|
||||
"\x1dHEALTH_STATE_DECLINED_SERVING\x10\x03\x12\x1f\n" +
|
||||
"\x1bHEALTH_STATE_INTERNAL_ERROR\x10\x04B*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"\x1bHEALTH_STATE_INTERNAL_ERROR\x10\x04B*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_cluster_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -235,7 +235,7 @@ const file_temporal_server_api_enums_v1_common_proto_rawDesc = "" +
|
||||
"\x18CALLBACK_STATE_SCHEDULED\x10\x02\x12\x1e\n" +
|
||||
"\x1aCALLBACK_STATE_BACKING_OFF\x10\x03\x12\x19\n" +
|
||||
"\x15CALLBACK_STATE_FAILED\x10\x04\x12\x1c\n" +
|
||||
"\x18CALLBACK_STATE_SUCCEEDED\x10\x05B*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"\x18CALLBACK_STATE_SUCCEEDED\x10\x05B*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_common_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -159,7 +159,7 @@ const file_temporal_server_api_enums_v1_dlq_proto_rawDesc = "" +
|
||||
"\x1fDLQ_OPERATION_STATE_UNSPECIFIED\x10\x00\x12\x1f\n" +
|
||||
"\x1bDLQ_OPERATION_STATE_RUNNING\x10\x01\x12!\n" +
|
||||
"\x1dDLQ_OPERATION_STATE_COMPLETED\x10\x02\x12\x1e\n" +
|
||||
"\x1aDLQ_OPERATION_STATE_FAILED\x10\x03B*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"\x1aDLQ_OPERATION_STATE_FAILED\x10\x03B*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_dlq_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -96,7 +96,7 @@ const file_temporal_server_api_enums_v1_fairness_state_proto_rawDesc = "" +
|
||||
"\x1aFAIRNESS_STATE_UNSPECIFIED\x10\x00\x12\x15\n" +
|
||||
"\x11FAIRNESS_STATE_V0\x10\x01\x12\x15\n" +
|
||||
"\x11FAIRNESS_STATE_V1\x10\x02\x12\x15\n" +
|
||||
"\x11FAIRNESS_STATE_V2\x10\x03B*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"\x11FAIRNESS_STATE_V2\x10\x03B*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_fairness_state_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -131,7 +131,7 @@ const file_temporal_server_api_enums_v1_nexus_proto_rawDesc = "" +
|
||||
"\x1fNEXUS_OPERATION_STATE_SUCCEEDED\x10\x04\x12 \n" +
|
||||
"\x1cNEXUS_OPERATION_STATE_FAILED\x10\x05\x12\"\n" +
|
||||
"\x1eNEXUS_OPERATION_STATE_CANCELED\x10\x06\x12#\n" +
|
||||
"\x1fNEXUS_OPERATION_STATE_TIMED_OUT\x10\aB*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"\x1fNEXUS_OPERATION_STATE_TIMED_OUT\x10\aB*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_nexus_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -143,7 +143,7 @@ const file_temporal_server_api_enums_v1_predicate_proto_rawDesc = "" +
|
||||
"\x1aPREDICATE_TYPE_DESTINATION\x10\b\x12&\n" +
|
||||
"\"PREDICATE_TYPE_OUTBOUND_TASK_GROUP\x10\t\x12 \n" +
|
||||
"\x1cPREDICATE_TYPE_OUTBOUND_TASK\x10\n" +
|
||||
"B*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"B*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_predicate_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -280,7 +280,7 @@ const file_temporal_server_api_enums_v1_replication_proto_rawDesc = "" +
|
||||
"\x1dReplicationFlowControlCommand\x120\n" +
|
||||
",REPLICATION_FLOW_CONTROL_COMMAND_UNSPECIFIED\x10\x00\x12+\n" +
|
||||
"'REPLICATION_FLOW_CONTROL_COMMAND_RESUME\x10\x01\x12*\n" +
|
||||
"&REPLICATION_FLOW_CONTROL_COMMAND_PAUSE\x10\x02B*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"&REPLICATION_FLOW_CONTROL_COMMAND_PAUSE\x10\x02B*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_replication_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -405,7 +405,7 @@ const file_temporal_server_api_enums_v1_task_proto_rawDesc = "" +
|
||||
"\x19TASK_PRIORITY_UNSPECIFIED\x10\x00\x12\x16\n" +
|
||||
"\x12TASK_PRIORITY_HIGH\x10\x01\x12\x15\n" +
|
||||
"\x11TASK_PRIORITY_LOW\x10\n" +
|
||||
"B*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"B*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_task_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -246,7 +246,7 @@ const file_temporal_server_api_enums_v1_workflow_proto_rawDesc = "" +
|
||||
"\x18PausedWorkflowEntityType\x12+\n" +
|
||||
"'PAUSED_WORKFLOW_ENTITY_TYPE_UNSPECIFIED\x10\x00\x12(\n" +
|
||||
"$PAUSED_WORKFLOW_ENTITY_TYPE_ACTIVITY\x10\x01\x12(\n" +
|
||||
"$PAUSED_WORKFLOW_ENTITY_TYPE_WORKFLOW\x10\x02B*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"$PAUSED_WORKFLOW_ENTITY_TYPE_WORKFLOW\x10\x02B*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_workflow_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -97,7 +97,7 @@ const file_temporal_server_api_enums_v1_workflow_task_type_proto_rawDesc = "" +
|
||||
"\x1eWORKFLOW_TASK_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n" +
|
||||
"\x19WORKFLOW_TASK_TYPE_NORMAL\x10\x01\x12 \n" +
|
||||
"\x1cWORKFLOW_TASK_TYPE_TRANSIENT\x10\x02\x12\"\n" +
|
||||
"\x1eWORKFLOW_TASK_TYPE_SPECULATIVE\x10\x03B*Z(go.temporal.io/server/api/enums/v1;enumsb\x06proto3"
|
||||
"\x1eWORKFLOW_TASK_TYPE_SPECULATIVE\x10\x03B*Z(github.com/hanzoai/tasks/api/enums/v1;enumsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_enums_v1_workflow_task_type_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -13,8 +13,8 @@ import (
|
||||
sync "sync"
|
||||
unsafe "unsafe"
|
||||
|
||||
v11 "go.temporal.io/server/api/history/v1"
|
||||
v1 "go.temporal.io/server/api/persistence/v1"
|
||||
v11 "github.com/hanzoai/tasks/api/history/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/persistence/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -543,7 +543,7 @@ const file_temporal_server_api_errordetails_v1_message_proto_rawDesc = "" +
|
||||
"\x1eStickyWorkerUnavailableFailure\" \n" +
|
||||
"\x1eObsoleteDispatchBuildIdFailure\"\x1d\n" +
|
||||
"\x1bObsoleteMatchingTaskFailure\"&\n" +
|
||||
"$ActivityStartDuringTransitionFailureB8Z6go.temporal.io/server/api/errordetails/v1;errordetailsb\x06proto3"
|
||||
"$ActivityStartDuringTransitionFailureB8Z6github.com/hanzoai/tasks/api/errordetails/v1;errordetailsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_errordetails_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
sync "sync"
|
||||
unsafe "unsafe"
|
||||
|
||||
v1 "go.temporal.io/server/api/enums/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -265,7 +265,7 @@ const file_temporal_server_api_health_v1_message_proto_rawDesc = "" +
|
||||
"\aservice\x18\x01 \x01(\tR\aservice\x12?\n" +
|
||||
"\x05state\x18\x02 \x01(\x0e2).temporal.server.api.enums.v1.HealthStateR\x05state\x12E\n" +
|
||||
"\x05hosts\x18\x03 \x03(\v2/.temporal.server.api.health.v1.HostHealthDetailR\x05hosts\x12\x18\n" +
|
||||
"\amessage\x18\x04 \x01(\tR\amessageB,Z*go.temporal.io/server/api/health/v1;healthb\x06proto3"
|
||||
"\amessage\x18\x04 \x01(\tR\amessageB,Z*github.com/hanzoai/tasks/api/health/v1;healthb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_health_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -455,7 +455,7 @@ const file_temporal_server_api_history_v1_message_proto_rawDesc = "" +
|
||||
"\bevent_id\x18\x01 \x01(\x03R\aeventId\x12\x18\n" +
|
||||
"\aversion\x18\x04 \x01(\x03R\aversion\"e\n" +
|
||||
"\x15StrippedHistoryEvents\x12L\n" +
|
||||
"\x06events\x18\x01 \x03(\v24.temporal.server.api.history.v1.StrippedHistoryEventR\x06eventsB.Z,go.temporal.io/server/api/history/v1;historyb\x06proto3"
|
||||
"\x06events\x18\x01 \x03(\v24.temporal.server.api.history.v1.StrippedHistoryEventR\x06eventsB.Z,github.com/hanzoai/tasks/api/history/v1;historyb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_history_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -23,18 +23,18 @@ import (
|
||||
v111 "go.temporal.io/api/taskqueue/v1"
|
||||
v15 "go.temporal.io/api/workflow/v1"
|
||||
v1 "go.temporal.io/api/workflowservice/v1"
|
||||
v118 "go.temporal.io/server/api/adminservice/v1"
|
||||
v18 "go.temporal.io/server/api/clock/v1"
|
||||
v119 "go.temporal.io/server/api/common/v1"
|
||||
v112 "go.temporal.io/server/api/enums/v1"
|
||||
v122 "go.temporal.io/server/api/health/v1"
|
||||
v19 "go.temporal.io/server/api/history/v1"
|
||||
v116 "go.temporal.io/server/api/namespace/v1"
|
||||
v110 "go.temporal.io/server/api/persistence/v1"
|
||||
v117 "go.temporal.io/server/api/replication/v1"
|
||||
v113 "go.temporal.io/server/api/taskqueue/v1"
|
||||
v120 "go.temporal.io/server/api/token/v1"
|
||||
v11 "go.temporal.io/server/api/workflow/v1"
|
||||
v118 "github.com/hanzoai/tasks/api/adminservice/v1"
|
||||
v18 "github.com/hanzoai/tasks/api/clock/v1"
|
||||
v119 "github.com/hanzoai/tasks/api/common/v1"
|
||||
v112 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
v122 "github.com/hanzoai/tasks/api/health/v1"
|
||||
v19 "github.com/hanzoai/tasks/api/history/v1"
|
||||
v116 "github.com/hanzoai/tasks/api/namespace/v1"
|
||||
v110 "github.com/hanzoai/tasks/api/persistence/v1"
|
||||
v117 "github.com/hanzoai/tasks/api/replication/v1"
|
||||
v113 "github.com/hanzoai/tasks/api/taskqueue/v1"
|
||||
v120 "github.com/hanzoai/tasks/api/token/v1"
|
||||
v11 "github.com/hanzoai/tasks/api/workflow/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
descriptorpb "google.golang.org/protobuf/types/descriptorpb"
|
||||
@@ -11160,7 +11160,7 @@ const file_temporal_server_api_historyservice_v1_request_response_proto_rawDesc
|
||||
"\x1a\bshard_id\"j\n" +
|
||||
"\x1cCancelNexusOperationResponse\x12J\n" +
|
||||
"\bresponse\x18\x01 \x01(\v2..temporal.api.nexus.v1.CancelOperationResponseR\bresponse:t\n" +
|
||||
"\arouting\x12\x1f.google.protobuf.MessageOptions\x18\xc28 \x01(\v25.temporal.server.api.historyservice.v1.RoutingOptionsR\arouting\x88\x01\x01B<Z:go.temporal.io/server/api/historyservice/v1;historyserviceb\x06proto3"
|
||||
"\arouting\x12\x1f.google.protobuf.MessageOptions\x18\xc28 \x01(\v25.temporal.server.api.historyservice.v1.RoutingOptionsR\arouting\x88\x01\x01B<Z:github.com/hanzoai/tasks/api/historyservice/v1;historyserviceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_historyservice_v1_request_response_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
reflect "reflect"
|
||||
unsafe "unsafe"
|
||||
|
||||
_ "go.temporal.io/server/api/common/v1"
|
||||
_ "github.com/hanzoai/tasks/api/common/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -106,7 +106,7 @@ const file_temporal_server_api_historyservice_v1_service_proto_rawDesc = "" +
|
||||
"\x16PauseWorkflowExecution\x12D.temporal.server.api.historyservice.v1.PauseWorkflowExecutionRequest\x1aE.temporal.server.api.historyservice.v1.PauseWorkflowExecutionResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\xb3\x01\n" +
|
||||
"\x18UnpauseWorkflowExecution\x12F.temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionRequest\x1aG.temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\xa4\x01\n" +
|
||||
"\x13StartNexusOperation\x12A.temporal.server.api.historyservice.v1.StartNexusOperationRequest\x1aB.temporal.server.api.historyservice.v1.StartNexusOperationResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\xa7\x01\n" +
|
||||
"\x14CancelNexusOperation\x12B.temporal.server.api.historyservice.v1.CancelNexusOperationRequest\x1aC.temporal.server.api.historyservice.v1.CancelNexusOperationResponse\"\x06\x8a\xb5\x18\x02\b\x01B<Z:go.temporal.io/server/api/historyservice/v1;historyserviceb\x06proto3"
|
||||
"\x14CancelNexusOperation\x12B.temporal.server.api.historyservice.v1.CancelNexusOperationRequest\x1aC.temporal.server.api.historyservice.v1.CancelNexusOperationResponse\"\x06\x8a\xb5\x18\x02\b\x01B<Z:github.com/hanzoai/tasks/api/historyservice/v1;historyserviceb\x06proto3"
|
||||
|
||||
var file_temporal_server_api_historyservice_v1_service_proto_goTypes = []any{
|
||||
(*StartWorkflowExecutionRequest)(nil), // 0: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
context "context"
|
||||
reflect "reflect"
|
||||
|
||||
historyservice "go.temporal.io/server/api/historyservice/v1"
|
||||
historyservice "github.com/hanzoai/tasks/api/historyservice/v1"
|
||||
gomock "go.uber.org/mock/gomock"
|
||||
grpc "google.golang.org/grpc"
|
||||
metadata "google.golang.org/grpc/metadata"
|
||||
|
||||
@@ -22,12 +22,12 @@ import (
|
||||
v14 "go.temporal.io/api/taskqueue/v1"
|
||||
v115 "go.temporal.io/api/worker/v1"
|
||||
v1 "go.temporal.io/api/workflowservice/v1"
|
||||
v17 "go.temporal.io/server/api/clock/v1"
|
||||
v110 "go.temporal.io/server/api/deployment/v1"
|
||||
v116 "go.temporal.io/server/api/enums/v1"
|
||||
v13 "go.temporal.io/server/api/history/v1"
|
||||
v111 "go.temporal.io/server/api/persistence/v1"
|
||||
v18 "go.temporal.io/server/api/taskqueue/v1"
|
||||
v17 "github.com/hanzoai/tasks/api/clock/v1"
|
||||
v110 "github.com/hanzoai/tasks/api/deployment/v1"
|
||||
v116 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
v13 "github.com/hanzoai/tasks/api/history/v1"
|
||||
v111 "github.com/hanzoai/tasks/api/persistence/v1"
|
||||
v18 "github.com/hanzoai/tasks/api/taskqueue/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
durationpb "google.golang.org/protobuf/types/known/durationpb"
|
||||
@@ -6163,7 +6163,7 @@ const file_temporal_server_api_matchingservice_v1_request_response_proto_rawDesc
|
||||
"\tis_member\x18\x01 \x01(\bR\bisMember\"L\n" +
|
||||
"\x0ePollConditions\x12!\n" +
|
||||
"\fmin_priority\x18\x01 \x01(\x05R\vminPriority\x12\x17\n" +
|
||||
"\ano_wait\x18\x02 \x01(\bR\x06noWaitB>Z<go.temporal.io/server/api/matchingservice/v1;matchingserviceb\x06proto3"
|
||||
"\ano_wait\x18\x02 \x01(\bR\x06noWaitB>Z<github.com/hanzoai/tasks/api/matchingservice/v1;matchingserviceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
reflect "reflect"
|
||||
unsafe "unsafe"
|
||||
|
||||
_ "go.temporal.io/server/api/common/v1"
|
||||
_ "github.com/hanzoai/tasks/api/common/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -67,7 +67,7 @@ const file_temporal_server_api_matchingservice_v1_service_proto_rawDesc = "" +
|
||||
"\x15UpdateTaskQueueConfig\x12D.temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest\x1aE.temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\x97\x01\n" +
|
||||
"\x0eDescribeWorker\x12=.temporal.server.api.matchingservice.v1.DescribeWorkerRequest\x1a>.temporal.server.api.matchingservice.v1.DescribeWorkerResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\xa6\x01\n" +
|
||||
"\x13UpdateFairnessState\x12B.temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest\x1aC.temporal.server.api.matchingservice.v1.UpdateFairnessStateResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\xca\x01\n" +
|
||||
"\x1fCheckTaskQueueVersionMembership\x12N.temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest\x1aO.temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipResponse\"\x06\x8a\xb5\x18\x02\b\x01B>Z<go.temporal.io/server/api/matchingservice/v1;matchingserviceb\x06proto3"
|
||||
"\x1fCheckTaskQueueVersionMembership\x12N.temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest\x1aO.temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipResponse\"\x06\x8a\xb5\x18\x02\b\x01B>Z<github.com/hanzoai/tasks/api/matchingservice/v1;matchingserviceb\x06proto3"
|
||||
|
||||
var file_temporal_server_api_matchingservice_v1_service_proto_goTypes = []any{
|
||||
(*PollWorkflowTaskQueueRequest)(nil), // 0: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueRequest
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
context "context"
|
||||
reflect "reflect"
|
||||
|
||||
matchingservice "go.temporal.io/server/api/matchingservice/v1"
|
||||
matchingservice "github.com/hanzoai/tasks/api/matchingservice/v1"
|
||||
gomock "go.uber.org/mock/gomock"
|
||||
grpc "google.golang.org/grpc"
|
||||
)
|
||||
|
||||
@@ -75,7 +75,7 @@ const file_temporal_server_api_metrics_v1_message_proto_rawDesc = "" +
|
||||
"\fcounters_int\x18\x01 \x03(\v28.temporal.server.api.metrics.v1.Baggage.CountersIntEntryR\vcountersInt\x1a>\n" +
|
||||
"\x10CountersIntEntry\x12\x10\n" +
|
||||
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||
"\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01B.Z,go.temporal.io/server/api/metrics/v1;metricsb\x06proto3"
|
||||
"\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01B.Z,github.com/hanzoai/tasks/api/metrics/v1;metricsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_metrics_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -87,7 +87,7 @@ const file_temporal_server_api_namespace_v1_message_proto_rawDesc = "" +
|
||||
".temporal/server/api/namespace/v1/message.proto\x12 temporal.server.api.namespace.v1\"\x8e\x01\n" +
|
||||
"\x12NamespaceCacheInfo\x129\n" +
|
||||
"\x1aitems_in_cache_by_id_count\x18\x01 \x01(\x03R\x15itemsInCacheByIdCount\x12=\n" +
|
||||
"\x1citems_in_cache_by_name_count\x18\x02 \x01(\x03R\x17itemsInCacheByNameCountB2Z0go.temporal.io/server/api/namespace/v1;namespaceb\x06proto3"
|
||||
"\x1citems_in_cache_by_name_count\x18\x02 \x01(\x03R\x17itemsInCacheByNameCountB2Z0github.com/hanzoai/tasks/api/namespace/v1;namespaceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_namespace_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -857,7 +857,7 @@ const file_temporal_server_api_persistence_v1_chasm_proto_rawDesc = "" +
|
||||
"close_time\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\tcloseTime\x12\x1d\n" +
|
||||
"\n" +
|
||||
"request_id\x18\x04 \x01(\tR\trequestIdB\t\n" +
|
||||
"\aoutcomeB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\aoutcomeB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_chasm_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -118,7 +118,7 @@ const file_temporal_server_api_persistence_v1_chasm_visibility_proto_rawDesc = "
|
||||
"\x13ChasmVisibilityData\x12)\n" +
|
||||
"\x10transition_count\x18\x01 \x01(\x03R\x0ftransitionCount\"D\n" +
|
||||
"\x17ChasmVisibilityTaskData\x12)\n" +
|
||||
"\x10transition_count\x18\x01 \x01(\x03R\x0ftransitionCountB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\x10transition_count\x18\x01 \x01(\x03R\x0ftransitionCountB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_chasm_visibility_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -250,7 +250,7 @@ const file_temporal_server_api_persistence_v1_cluster_metadata_proto_rawDesc = "
|
||||
"\x18custom_search_attributes\x18\x01 \x03(\v2U.temporal.server.api.persistence.v1.IndexSearchAttributes.CustomSearchAttributesEntryR\x16customSearchAttributes\x1ar\n" +
|
||||
"\x1bCustomSearchAttributesEntry\x12\x10\n" +
|
||||
"\x03key\x18\x01 \x01(\tR\x03key\x12=\n" +
|
||||
"\x05value\x18\x02 \x01(\x0e2'.temporal.api.enums.v1.IndexedValueTypeR\x05value:\x028\x01B6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\x05value\x18\x02 \x01(\x0e2'.temporal.api.enums.v1.IndexedValueTypeR\x05value:\x028\x01B6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_cluster_metadata_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -17,10 +17,10 @@ import (
|
||||
v19 "go.temporal.io/api/failure/v1"
|
||||
v17 "go.temporal.io/api/history/v1"
|
||||
v12 "go.temporal.io/api/workflow/v1"
|
||||
v15 "go.temporal.io/server/api/clock/v1"
|
||||
v1 "go.temporal.io/server/api/enums/v1"
|
||||
v14 "go.temporal.io/server/api/history/v1"
|
||||
v16 "go.temporal.io/server/api/workflow/v1"
|
||||
v15 "github.com/hanzoai/tasks/api/clock/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
v14 "github.com/hanzoai/tasks/api/history/v1"
|
||||
v16 "github.com/hanzoai/tasks/api/workflow/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
durationpb "google.golang.org/protobuf/types/known/durationpb"
|
||||
@@ -5111,7 +5111,7 @@ const file_temporal_server_api_persistence_v1_executions_proto_rawDesc = "" +
|
||||
"\bidentity\x18\x02 \x01(\tR\bidentity\x12\x16\n" +
|
||||
"\x06reason\x18\x03 \x01(\tR\x06reason\x12\x1d\n" +
|
||||
"\n" +
|
||||
"request_id\x18\x04 \x01(\tR\trequestIdB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"request_id\x18\x04 \x01(\tR\trequestIdB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_executions_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -241,7 +241,7 @@ const file_temporal_server_api_persistence_v1_history_tree_proto_rawDesc = "" +
|
||||
"\x12HistoryBranchRange\x12\x1b\n" +
|
||||
"\tbranch_id\x18\x01 \x01(\tR\bbranchId\x12\"\n" +
|
||||
"\rbegin_node_id\x18\x02 \x01(\x03R\vbeginNodeId\x12\x1e\n" +
|
||||
"\vend_node_id\x18\x03 \x01(\x03R\tendNodeIdB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\vend_node_id\x18\x03 \x01(\x03R\tendNodeIdB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_history_tree_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -839,7 +839,7 @@ const file_temporal_server_api_persistence_v1_hsm_proto_rawDesc = "" +
|
||||
"\x0fchasm_node_path\x18\b \x01(\tH\x00R\rchasmNodePathB\x13\n" +
|
||||
"\x11state_machine_key\"[\n" +
|
||||
"\x10StateMachinePath\x12G\n" +
|
||||
"\x04path\x18\x01 \x03(\v23.temporal.server.api.persistence.v1.StateMachineKeyR\x04pathB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\x04path\x18\x01 \x03(\v23.temporal.server.api.persistence.v1.StateMachineKeyR\x04pathB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_hsm_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -479,7 +479,7 @@ const file_temporal_server_api_persistence_v1_namespaces_proto_rawDesc = "" +
|
||||
"\x10failover_history\x18\b \x03(\v22.temporal.server.api.persistence.v1.FailoverStatusR\x0ffailoverHistory\"|\n" +
|
||||
"\x0eFailoverStatus\x12?\n" +
|
||||
"\rfailover_time\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\ffailoverTime\x12)\n" +
|
||||
"\x10failover_version\x18\x02 \x01(\x03R\x0ffailoverVersionB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\x10failover_version\x18\x02 \x01(\x03R\x0ffailoverVersionB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_namespaces_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
unsafe "unsafe"
|
||||
|
||||
v1 "go.temporal.io/api/common/v1"
|
||||
v11 "go.temporal.io/server/api/clock/v1"
|
||||
v11 "github.com/hanzoai/tasks/api/clock/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
||||
@@ -438,7 +438,7 @@ const file_temporal_server_api_persistence_v1_nexus_proto_rawDesc = "" +
|
||||
"\x12NexusEndpointEntry\x12\x18\n" +
|
||||
"\aversion\x18\x01 \x01(\x03R\aversion\x12\x0e\n" +
|
||||
"\x02id\x18\x02 \x01(\tR\x02id\x12M\n" +
|
||||
"\bendpoint\x18\x03 \x01(\v21.temporal.server.api.persistence.v1.NexusEndpointR\bendpointB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\bendpoint\x18\x03 \x01(\v21.temporal.server.api.persistence.v1.NexusEndpointR\bendpointB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_nexus_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
sync "sync"
|
||||
unsafe "unsafe"
|
||||
|
||||
v1 "go.temporal.io/server/api/enums/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -772,7 +772,7 @@ const file_temporal_server_api_persistence_v1_predicates_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"task_group\x18\x01 \x01(\tR\ttaskGroup\x12!\n" +
|
||||
"\fnamespace_id\x18\x02 \x01(\tR\vnamespaceId\x12 \n" +
|
||||
"\vdestination\x18\x03 \x01(\tR\vdestinationB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\vdestination\x18\x03 \x01(\tR\vdestinationB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_predicates_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -76,7 +76,7 @@ const file_temporal_server_api_persistence_v1_queue_metadata_proto_rawDesc = ""
|
||||
"\x12cluster_ack_levels\x18\x01 \x03(\v2G.temporal.server.api.persistence.v1.QueueMetadata.ClusterAckLevelsEntryR\x10clusterAckLevels\x1aC\n" +
|
||||
"\x15ClusterAckLevelsEntry\x12\x10\n" +
|
||||
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
||||
"\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01B6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\x05value\x18\x02 \x01(\x03R\x05value:\x028\x01B6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_queue_metadata_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -507,7 +507,7 @@ const file_temporal_server_api_persistence_v1_queues_proto_rawDesc = "" +
|
||||
"partitions\x1aq\n" +
|
||||
"\x0fPartitionsEntry\x12\x10\n" +
|
||||
"\x03key\x18\x01 \x01(\x05R\x03key\x12H\n" +
|
||||
"\x05value\x18\x02 \x01(\v22.temporal.server.api.persistence.v1.QueuePartitionR\x05value:\x028\x01B6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\x05value\x18\x02 \x01(\v22.temporal.server.api.persistence.v1.QueuePartitionR\x05value:\x028\x01B6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_queues_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -14,9 +14,9 @@ import (
|
||||
|
||||
v13 "go.temporal.io/api/deployment/v1"
|
||||
v11 "go.temporal.io/api/taskqueue/v1"
|
||||
v1 "go.temporal.io/server/api/clock/v1"
|
||||
v12 "go.temporal.io/server/api/deployment/v1"
|
||||
v14 "go.temporal.io/server/api/enums/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/clock/v1"
|
||||
v12 "github.com/hanzoai/tasks/api/deployment/v1"
|
||||
v14 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -821,7 +821,7 @@ const file_temporal_server_api_persistence_v1_task_queues_proto_rawDesc = "" +
|
||||
"\x05value\x18\x02 \x01(\v29.temporal.server.api.persistence.v1.TaskQueueTypeUserDataR\x05value:\x028\x01\"\x81\x01\n" +
|
||||
"\x1aVersionedTaskQueueUserData\x12I\n" +
|
||||
"\x04data\x18\x01 \x01(\v25.temporal.server.api.persistence.v1.TaskQueueUserDataR\x04data\x12\x18\n" +
|
||||
"\aversion\x18\x02 \x01(\x03R\aversionB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\aversion\x18\x02 \x01(\x03R\aversionB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_task_queues_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -13,8 +13,8 @@ import (
|
||||
|
||||
v12 "go.temporal.io/api/common/v1"
|
||||
v13 "go.temporal.io/api/enums/v1"
|
||||
v1 "go.temporal.io/server/api/clock/v1"
|
||||
v11 "go.temporal.io/server/api/taskqueue/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/clock/v1"
|
||||
v11 "github.com/hanzoai/tasks/api/taskqueue/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
||||
@@ -648,7 +648,7 @@ const file_temporal_server_api_persistence_v1_tasks_proto_rawDesc = "" +
|
||||
"\bpriority\x18\x01 \x01(\x05R\bpriority\"[\n" +
|
||||
"\aTaskKey\x127\n" +
|
||||
"\tfire_time\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampR\bfireTime\x12\x17\n" +
|
||||
"\atask_id\x18\x02 \x01(\x03R\x06taskIdB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\atask_id\x18\x02 \x01(\x03R\x06taskIdB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_tasks_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -385,7 +385,7 @@ const file_temporal_server_api_persistence_v1_update_proto_rawDesc = "" +
|
||||
"completion\x12W\n" +
|
||||
"\tadmission\x18\x03 \x01(\v27.temporal.server.api.persistence.v1.UpdateAdmissionInfoH\x00R\tadmission\x12\x80\x01\n" +
|
||||
" last_update_versioned_transition\x18\x04 \x01(\v27.temporal.server.api.persistence.v1.VersionedTransitionR\x1dlastUpdateVersionedTransitionB\a\n" +
|
||||
"\x05valueB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\x05valueB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_update_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -439,7 +439,7 @@ const file_temporal_server_api_persistence_v1_workflow_mutable_state_proto_rawDe
|
||||
"\x03key\x18\x01 \x01(\tR\x03key\x12C\n" +
|
||||
"\x05value\x18\x02 \x01(\v2-.temporal.server.api.persistence.v1.ChasmNodeR\x05value:\x028\x01J\x04\b\b\x10\tJ\x04\b\t\x10\n" +
|
||||
"J\x04\b\n" +
|
||||
"\x10\vJ\x04\b\v\x10\fJ\x04\b\f\x10\rJ\x04\b\r\x10\x0eJ\x04\b\x0e\x10\x0fB6Z4go.temporal.io/server/api/persistence/v1;persistenceb\x06proto3"
|
||||
"\x10\vJ\x04\b\v\x10\fJ\x04\b\f\x10\rJ\x04\b\r\x10\x0eJ\x04\b\x0e\x10\x0fB6Z4github.com/hanzoai/tasks/api/persistence/v1;persistenceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_persistence_v1_workflow_mutable_state_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -15,10 +15,10 @@ import (
|
||||
v15 "go.temporal.io/api/failure/v1"
|
||||
v13 "go.temporal.io/api/namespace/v1"
|
||||
v14 "go.temporal.io/api/replication/v1"
|
||||
v1 "go.temporal.io/server/api/enums/v1"
|
||||
v16 "go.temporal.io/server/api/history/v1"
|
||||
v12 "go.temporal.io/server/api/persistence/v1"
|
||||
v17 "go.temporal.io/server/api/workflow/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
v16 "github.com/hanzoai/tasks/api/history/v1"
|
||||
v12 "github.com/hanzoai/tasks/api/persistence/v1"
|
||||
v17 "github.com/hanzoai/tasks/api/workflow/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
durationpb "google.golang.org/protobuf/types/known/durationpb"
|
||||
@@ -2300,7 +2300,7 @@ const file_temporal_server_api_replication_v1_message_proto_rawDesc = "" +
|
||||
"\vbusiness_id\x18\x01 \x01(\tR\n" +
|
||||
"workflowId\x12\x15\n" +
|
||||
"\x06run_id\x18\x02 \x01(\tR\x05runId\x12!\n" +
|
||||
"\farchetype_id\x18\x03 \x01(\rR\varchetypeIdB5Z3go.temporal.io/server/api/replication/v1;repicationb\x06proto3"
|
||||
"\farchetype_id\x18\x03 \x01(\rR\varchetypeIdB5Z3github.com/hanzoai/tasks/api/replication/v1;repicationb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_replication_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -113,7 +113,7 @@ const file_temporal_server_api_routing_v1_extension_proto_rawDesc = "" +
|
||||
"\fnamespace_id\x18\x02 \x01(\tR\vnamespaceId\x12\x1f\n" +
|
||||
"\vbusiness_id\x18\x03 \x01(\tR\n" +
|
||||
"businessId:l\n" +
|
||||
"\arouting\x12\x1e.google.protobuf.MethodOptions\x18\xc28 \x01(\v2..temporal.server.api.routing.v1.RoutingOptionsR\arouting\x88\x01\x01B.Z,go.temporal.io/server/api/routing/v1;routingb\x06proto3"
|
||||
"\arouting\x12\x1e.google.protobuf.MethodOptions\x18\xc28 \x01(\v2..temporal.server.api.routing.v1.RoutingOptionsR\arouting\x88\x01\x01B.Z,github.com/hanzoai/tasks/api/routing/v1;routingb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_routing_v1_extension_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -1129,7 +1129,7 @@ const file_temporal_server_api_schedule_v1_message_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"next_times\x18\x03 \x03(\x03R\tnextTimes\x12#\n" +
|
||||
"\rnominal_times\x18\x04 \x03(\x03R\fnominalTimes\x12\x1c\n" +
|
||||
"\tcompleted\x18\x05 \x01(\bR\tcompletedB0Z.go.temporal.io/server/api/schedule/v1;scheduleb\x06proto3"
|
||||
"\tcompleted\x18\x05 \x01(\bR\tcompletedB0Z.github.com/hanzoai/tasks/api/schedule/v1;scheduleb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_schedule_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -14,8 +14,8 @@ import (
|
||||
v11 "go.temporal.io/api/deployment/v1"
|
||||
v1 "go.temporal.io/api/enums/v1"
|
||||
v13 "go.temporal.io/api/taskqueue/v1"
|
||||
v12 "go.temporal.io/server/api/deployment/v1"
|
||||
v14 "go.temporal.io/server/api/enums/v1"
|
||||
v12 "github.com/hanzoai/tasks/api/deployment/v1"
|
||||
v14 "github.com/hanzoai/tasks/api/enums/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||
@@ -986,7 +986,7 @@ const file_temporal_server_api_taskqueue_v1_message_proto_rawDesc = "" +
|
||||
"\aversion\x18\x02 \x03(\v29.temporal.server.api.taskqueue.v1.EphemeralData.ByVersionR\aversion\"w\n" +
|
||||
"\x16VersionedEphemeralData\x12C\n" +
|
||||
"\x04data\x18\x01 \x01(\v2/.temporal.server.api.taskqueue.v1.EphemeralDataR\x04data\x12\x18\n" +
|
||||
"\aversion\x18\x02 \x01(\x03R\aversionB2Z0go.temporal.io/server/api/taskqueue/v1;taskqueueb\x06proto3"
|
||||
"\aversion\x18\x02 \x01(\x03R\aversionB2Z0github.com/hanzoai/tasks/api/taskqueue/v1;taskqueueb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_taskqueue_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -118,7 +118,7 @@ const file_temporal_server_api_testservice_v1_request_response_proto_rawDesc = "
|
||||
"\x10SendHelloRequest\x12\x12\n" +
|
||||
"\x04name\x18\x01 \x01(\tR\x04name\"-\n" +
|
||||
"\x11SendHelloResponse\x12\x18\n" +
|
||||
"\amessage\x18\x01 \x01(\tR\amessageB6Z4go.temporal.io/server/api/testservice/v1;testserviceb\x06proto3"
|
||||
"\amessage\x18\x01 \x01(\tR\amessageB6Z4github.com/hanzoai/tasks/api/testservice/v1;testserviceb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_testservice_v1_request_response_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -27,7 +27,7 @@ const file_temporal_server_api_testservice_v1_service_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"0temporal/server/api/testservice/v1/service.proto\x12\"temporal.server.api.testservice.v1\x1a9temporal/server/api/testservice/v1/request_response.proto2\x89\x01\n" +
|
||||
"\vTestService\x12z\n" +
|
||||
"\tSendHello\x124.temporal.server.api.testservice.v1.SendHelloRequest\x1a5.temporal.server.api.testservice.v1.SendHelloResponse\"\x00B6Z4go.temporal.io/server/api/testservice/v1;testserviceb\x06proto3"
|
||||
"\tSendHello\x124.temporal.server.api.testservice.v1.SendHelloRequest\x1a5.temporal.server.api.testservice.v1.SendHelloResponse\"\x00B6Z4github.com/hanzoai/tasks/api/testservice/v1;testserviceb\x06proto3"
|
||||
|
||||
var file_temporal_server_api_testservice_v1_service_proto_goTypes = []any{
|
||||
(*SendHelloRequest)(nil), // 0: temporal.server.api.testservice.v1.SendHelloRequest
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
context "context"
|
||||
reflect "reflect"
|
||||
|
||||
testservice "go.temporal.io/server/api/testservice/v1"
|
||||
testservice "github.com/hanzoai/tasks/api/testservice/v1"
|
||||
gomock "go.uber.org/mock/gomock"
|
||||
grpc "google.golang.org/grpc"
|
||||
)
|
||||
|
||||
@@ -11,9 +11,9 @@ import (
|
||||
sync "sync"
|
||||
unsafe "unsafe"
|
||||
|
||||
v12 "go.temporal.io/server/api/clock/v1"
|
||||
v1 "go.temporal.io/server/api/history/v1"
|
||||
v11 "go.temporal.io/server/api/persistence/v1"
|
||||
v12 "github.com/hanzoai/tasks/api/clock/v1"
|
||||
v1 "github.com/hanzoai/tasks/api/history/v1"
|
||||
v11 "github.com/hanzoai/tasks/api/persistence/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
||||
@@ -719,7 +719,7 @@ const file_temporal_server_api_token_v1_message_proto_rawDesc = "" +
|
||||
"\x03ref\x18\x04 \x01(\v23.temporal.server.api.persistence.v1.StateMachineRefR\x03ref\x12\x1d\n" +
|
||||
"\n" +
|
||||
"request_id\x18\x05 \x01(\tR\trequestId\x12#\n" +
|
||||
"\rcomponent_ref\x18\x06 \x01(\fR\fcomponentRefB*Z(go.temporal.io/server/api/token/v1;tokenb\x06proto3"
|
||||
"\rcomponent_ref\x18\x06 \x01(\fR\fcomponentRefB*Z(github.com/hanzoai/tasks/api/token/v1;tokenb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_token_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
unsafe "unsafe"
|
||||
|
||||
v1 "go.temporal.io/api/common/v1"
|
||||
v11 "go.temporal.io/server/api/clock/v1"
|
||||
v11 "github.com/hanzoai/tasks/api/clock/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -244,7 +244,7 @@ const file_temporal_server_api_workflow_v1_message_proto_rawDesc = "" +
|
||||
"\x11BaseExecutionInfo\x12\x15\n" +
|
||||
"\x06run_id\x18\x01 \x01(\tR\x05runId\x12D\n" +
|
||||
"\x1flowest_common_ancestor_event_id\x18\x02 \x01(\x03R\x1blowestCommonAncestorEventId\x12N\n" +
|
||||
"$lowest_common_ancestor_event_version\x18\x03 \x01(\x03R lowestCommonAncestorEventVersionB0Z.go.temporal.io/server/api/workflow/v1;workflowb\x06proto3"
|
||||
"$lowest_common_ancestor_event_version\x18\x03 \x01(\x03R lowestCommonAncestorEventVersionB0Z.github.com/hanzoai/tasks/api/workflow/v1;workflowb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_api_workflow_v1_message_proto_rawDescOnce sync.Once
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"go.temporal.io/server/common/log"
|
||||
"go.temporal.io/server/common/metrics"
|
||||
"github.com/hanzoai/tasks/common/log"
|
||||
"github.com/hanzoai/tasks/common/metrics"
|
||||
)
|
||||
|
||||
type Context interface {
|
||||
|
||||
@@ -6,9 +6,9 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"go.temporal.io/server/common/log"
|
||||
"go.temporal.io/server/common/log/tag"
|
||||
"go.temporal.io/server/common/metrics"
|
||||
"github.com/hanzoai/tasks/common/log"
|
||||
"github.com/hanzoai/tasks/common/log/tag"
|
||||
"github.com/hanzoai/tasks/common/metrics"
|
||||
)
|
||||
|
||||
var _ Context = (*MockContext)(nil)
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ package chasm
|
||||
import (
|
||||
"context"
|
||||
|
||||
"go.temporal.io/server/common/log"
|
||||
"github.com/hanzoai/tasks/common/log"
|
||||
)
|
||||
|
||||
// NoValue is a sentinel type representing no value.
|
||||
|
||||
+8
-8
@@ -7,14 +7,14 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/stretchr/testify/suite"
|
||||
persistencespb "go.temporal.io/server/api/persistence/v1"
|
||||
"go.temporal.io/server/common/clock"
|
||||
"go.temporal.io/server/common/definition"
|
||||
"go.temporal.io/server/common/log"
|
||||
"go.temporal.io/server/common/metrics"
|
||||
"go.temporal.io/server/common/primitives"
|
||||
"go.temporal.io/server/common/testing/protorequire"
|
||||
"go.temporal.io/server/common/testing/testlogger"
|
||||
persistencespb "github.com/hanzoai/tasks/api/persistence/v1"
|
||||
"github.com/hanzoai/tasks/common/clock"
|
||||
"github.com/hanzoai/tasks/common/definition"
|
||||
"github.com/hanzoai/tasks/common/log"
|
||||
"github.com/hanzoai/tasks/common/metrics"
|
||||
"github.com/hanzoai/tasks/common/primitives"
|
||||
"github.com/hanzoai/tasks/common/testing/protorequire"
|
||||
"github.com/hanzoai/tasks/common/testing/testlogger"
|
||||
"go.uber.org/mock/gomock"
|
||||
)
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.temporal.io/server/chasm"
|
||||
"go.temporal.io/server/chasm/lib/tests/gen/testspb/v1"
|
||||
"go.temporal.io/server/common/log"
|
||||
"go.temporal.io/server/common/metrics"
|
||||
"github.com/hanzoai/tasks/chasm"
|
||||
"github.com/hanzoai/tasks/chasm/lib/tests/gen/testspb/v1"
|
||||
"github.com/hanzoai/tasks/common/log"
|
||||
"github.com/hanzoai/tasks/common/metrics"
|
||||
"go.uber.org/mock/gomock"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials/insecure"
|
||||
|
||||
@@ -3,8 +3,8 @@ package chasm
|
||||
import (
|
||||
"context"
|
||||
|
||||
"go.temporal.io/server/common/log"
|
||||
"go.temporal.io/server/common/metrics"
|
||||
"github.com/hanzoai/tasks/common/log"
|
||||
"github.com/hanzoai/tasks/common/metrics"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
|
||||
@@ -13,18 +13,18 @@ import (
|
||||
historypb "go.temporal.io/api/history/v1"
|
||||
"go.temporal.io/api/serviceerror"
|
||||
"go.temporal.io/api/workflowservice/v1"
|
||||
"go.temporal.io/server/api/historyservice/v1"
|
||||
"go.temporal.io/server/api/matchingservice/v1"
|
||||
tokenspb "go.temporal.io/server/api/token/v1"
|
||||
"go.temporal.io/server/chasm"
|
||||
"go.temporal.io/server/chasm/lib/activity/gen/activitypb/v1"
|
||||
"go.temporal.io/server/common"
|
||||
"go.temporal.io/server/common/backoff"
|
||||
"go.temporal.io/server/common/dynamicconfig"
|
||||
"go.temporal.io/server/common/metrics"
|
||||
"go.temporal.io/server/common/payload"
|
||||
serviceerrors "go.temporal.io/server/common/serviceerror"
|
||||
"go.temporal.io/server/common/tqid"
|
||||
"github.com/hanzoai/tasks/api/historyservice/v1"
|
||||
"github.com/hanzoai/tasks/api/matchingservice/v1"
|
||||
tokenspb "github.com/hanzoai/tasks/api/token/v1"
|
||||
"github.com/hanzoai/tasks/chasm"
|
||||
"github.com/hanzoai/tasks/chasm/lib/activity/gen/activitypb/v1"
|
||||
"github.com/hanzoai/tasks/common"
|
||||
"github.com/hanzoai/tasks/common/backoff"
|
||||
"github.com/hanzoai/tasks/common/dynamicconfig"
|
||||
"github.com/hanzoai/tasks/common/metrics"
|
||||
"github.com/hanzoai/tasks/common/payload"
|
||||
serviceerrors "github.com/hanzoai/tasks/common/serviceerror"
|
||||
"github.com/hanzoai/tasks/common/tqid"
|
||||
"google.golang.org/protobuf/types/known/durationpb"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
)
|
||||
|
||||
@@ -4,12 +4,12 @@ import (
|
||||
"context"
|
||||
|
||||
enumspb "go.temporal.io/api/enums/v1"
|
||||
"go.temporal.io/server/chasm"
|
||||
"go.temporal.io/server/chasm/lib/activity/gen/activitypb/v1"
|
||||
"go.temporal.io/server/common/metrics"
|
||||
"go.temporal.io/server/common/namespace"
|
||||
"go.temporal.io/server/common/resource"
|
||||
"go.temporal.io/server/common/util"
|
||||
"github.com/hanzoai/tasks/chasm"
|
||||
"github.com/hanzoai/tasks/chasm/lib/activity/gen/activitypb/v1"
|
||||
"github.com/hanzoai/tasks/common/metrics"
|
||||
"github.com/hanzoai/tasks/common/namespace"
|
||||
"github.com/hanzoai/tasks/common/resource"
|
||||
"github.com/hanzoai/tasks/common/util"
|
||||
"go.uber.org/fx"
|
||||
)
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
commonpb "go.temporal.io/api/common/v1"
|
||||
taskqueuepb "go.temporal.io/api/taskqueue/v1"
|
||||
"go.temporal.io/server/api/historyservice/v1"
|
||||
"go.temporal.io/server/chasm"
|
||||
"go.temporal.io/server/chasm/lib/activity/gen/activitypb/v1"
|
||||
serviceerrors "go.temporal.io/server/common/serviceerror"
|
||||
"github.com/hanzoai/tasks/api/historyservice/v1"
|
||||
"github.com/hanzoai/tasks/chasm"
|
||||
"github.com/hanzoai/tasks/chasm/lib/activity/gen/activitypb/v1"
|
||||
serviceerrors "github.com/hanzoai/tasks/common/serviceerror"
|
||||
"google.golang.org/protobuf/types/known/durationpb"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
)
|
||||
|
||||
@@ -3,8 +3,8 @@ package activity
|
||||
import (
|
||||
"time"
|
||||
|
||||
"go.temporal.io/server/common/dynamicconfig"
|
||||
"go.temporal.io/server/common/retrypolicy"
|
||||
"github.com/hanzoai/tasks/common/dynamicconfig"
|
||||
"github.com/hanzoai/tasks/common/retrypolicy"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
@@ -9,13 +9,13 @@ import (
|
||||
enumspb "go.temporal.io/api/enums/v1"
|
||||
"go.temporal.io/api/serviceerror"
|
||||
"go.temporal.io/api/workflowservice/v1"
|
||||
"go.temporal.io/server/chasm"
|
||||
"go.temporal.io/server/chasm/lib/activity/gen/activitypb/v1"
|
||||
"go.temporal.io/server/common"
|
||||
"go.temporal.io/server/common/log"
|
||||
"go.temporal.io/server/common/metrics"
|
||||
"go.temporal.io/server/common/namespace"
|
||||
"go.temporal.io/server/common/searchattribute"
|
||||
"github.com/hanzoai/tasks/chasm"
|
||||
"github.com/hanzoai/tasks/chasm/lib/activity/gen/activitypb/v1"
|
||||
"github.com/hanzoai/tasks/common"
|
||||
"github.com/hanzoai/tasks/common/log"
|
||||
"github.com/hanzoai/tasks/common/metrics"
|
||||
"github.com/hanzoai/tasks/common/namespace"
|
||||
"github.com/hanzoai/tasks/common/searchattribute"
|
||||
"google.golang.org/protobuf/types/known/durationpb"
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package activity
|
||||
|
||||
import (
|
||||
"go.temporal.io/server/chasm"
|
||||
"go.temporal.io/server/chasm/lib/activity/gen/activitypb/v1"
|
||||
"go.temporal.io/server/common/resource"
|
||||
"github.com/hanzoai/tasks/chasm"
|
||||
"github.com/hanzoai/tasks/chasm/lib/activity/gen/activitypb/v1"
|
||||
"github.com/hanzoai/tasks/common/resource"
|
||||
"go.uber.org/fx"
|
||||
)
|
||||
|
||||
|
||||
@@ -954,7 +954,7 @@ const file_temporal_server_chasm_lib_activity_proto_v1_activity_state_proto_rawD
|
||||
" ACTIVITY_EXECUTION_STATUS_FAILED\x10\x05\x12&\n" +
|
||||
"\"ACTIVITY_EXECUTION_STATUS_CANCELED\x10\x06\x12(\n" +
|
||||
"$ACTIVITY_EXECUTION_STATUS_TERMINATED\x10\a\x12'\n" +
|
||||
"#ACTIVITY_EXECUTION_STATUS_TIMED_OUT\x10\bBDZBgo.temporal.io/server/chasm/lib/activity/gen/activitypb;activitypbb\x06proto3"
|
||||
"#ACTIVITY_EXECUTION_STATUS_TIMED_OUT\x10\bBDZBgithub.com/hanzoai/tasks/chasm/lib/activity/gen/activitypb;activitypbb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_chasm_lib_activity_proto_v1_activity_state_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -514,7 +514,7 @@ const file_temporal_server_chasm_lib_activity_proto_v1_request_response_proto_ra
|
||||
"%RequestCancelActivityExecutionRequest\x12!\n" +
|
||||
"\fnamespace_id\x18\x01 \x01(\tR\vnamespaceId\x12q\n" +
|
||||
"\x10frontend_request\x18\x02 \x01(\v2F.temporal.api.workflowservice.v1.RequestCancelActivityExecutionRequestR\x0ffrontendRequest\"(\n" +
|
||||
"&RequestCancelActivityExecutionResponseBDZBgo.temporal.io/server/chasm/lib/activity/gen/activitypb;activitypbb\x06proto3"
|
||||
"&RequestCancelActivityExecutionResponseBDZBgithub.com/hanzoai/tasks/chasm/lib/activity/gen/activitypb;activitypbb\x06proto3"
|
||||
|
||||
var (
|
||||
file_temporal_server_chasm_lib_activity_proto_v1_request_response_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -10,8 +10,8 @@ import (
|
||||
reflect "reflect"
|
||||
unsafe "unsafe"
|
||||
|
||||
_ "go.temporal.io/server/api/common/v1"
|
||||
_ "go.temporal.io/server/api/routing/v1"
|
||||
_ "github.com/hanzoai/tasks/api/common/v1"
|
||||
_ "github.com/hanzoai/tasks/api/routing/v1"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
@@ -33,7 +33,7 @@ const file_temporal_server_chasm_lib_activity_proto_v1_service_proto_rawDesc = "
|
||||
"\x19DescribeActivityExecution\x12M.temporal.server.chasm.lib.activity.proto.v1.DescribeActivityExecutionRequest\x1aN.temporal.server.chasm.lib.activity.proto.v1.DescribeActivityExecutionResponse\"(\x92\xc4\x03\x1e\x1a\x1cfrontend_request.activity_id\x8a\xb5\x18\x02\b\x01\x12\xd8\x01\n" +
|
||||
"\x15PollActivityExecution\x12I.temporal.server.chasm.lib.activity.proto.v1.PollActivityExecutionRequest\x1aJ.temporal.server.chasm.lib.activity.proto.v1.PollActivityExecutionResponse\"(\x92\xc4\x03\x1e\x1a\x1cfrontend_request.activity_id\x8a\xb5\x18\x02\b\x02\x12\xe7\x01\n" +
|
||||
"\x1aTerminateActivityExecution\x12N.temporal.server.chasm.lib.activity.proto.v1.TerminateActivityExecutionRequest\x1aO.temporal.server.chasm.lib.activity.proto.v1.TerminateActivityExecutionResponse\"(\x92\xc4\x03\x1e\x1a\x1cfrontend_request.activity_id\x8a\xb5\x18\x02\b\x01\x12\xf3\x01\n" +
|
||||
"\x1eRequestCancelActivityExecution\x12R.temporal.server.chasm.lib.activity.proto.v1.RequestCancelActivityExecutionRequest\x1aS.temporal.server.chasm.lib.activity.proto.v1.RequestCancelActivityExecutionResponse\"(\x92\xc4\x03\x1e\x1a\x1cfrontend_request.activity_id\x8a\xb5\x18\x02\b\x01BDZBgo.temporal.io/server/chasm/lib/activity/gen/activitypb;activitypbb\x06proto3"
|
||||
"\x1eRequestCancelActivityExecution\x12R.temporal.server.chasm.lib.activity.proto.v1.RequestCancelActivityExecutionRequest\x1aS.temporal.server.chasm.lib.activity.proto.v1.RequestCancelActivityExecutionResponse\"(\x92\xc4\x03\x1e\x1a\x1cfrontend_request.activity_id\x8a\xb5\x18\x02\b\x01BDZBgithub.com/hanzoai/tasks/chasm/lib/activity/gen/activitypb;activitypbb\x06proto3"
|
||||
|
||||
var file_temporal_server_chasm_lib_activity_proto_v1_service_proto_goTypes = []any{
|
||||
(*StartActivityExecutionRequest)(nil), // 0: temporal.server.chasm.lib.activity.proto.v1.StartActivityExecutionRequest
|
||||
|
||||
@@ -5,16 +5,16 @@ import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"go.temporal.io/server/client/history"
|
||||
"go.temporal.io/server/common"
|
||||
"go.temporal.io/server/common/backoff"
|
||||
"go.temporal.io/server/common/config"
|
||||
"go.temporal.io/server/common/dynamicconfig"
|
||||
"go.temporal.io/server/common/headers"
|
||||
"go.temporal.io/server/common/log"
|
||||
"go.temporal.io/server/common/membership"
|
||||
"go.temporal.io/server/common/metrics"
|
||||
"go.temporal.io/server/common/primitives"
|
||||
"github.com/hanzoai/tasks/client/history"
|
||||
"github.com/hanzoai/tasks/common"
|
||||
"github.com/hanzoai/tasks/common/backoff"
|
||||
"github.com/hanzoai/tasks/common/config"
|
||||
"github.com/hanzoai/tasks/common/dynamicconfig"
|
||||
"github.com/hanzoai/tasks/common/headers"
|
||||
"github.com/hanzoai/tasks/common/log"
|
||||
"github.com/hanzoai/tasks/common/membership"
|
||||
"github.com/hanzoai/tasks/common/metrics"
|
||||
"github.com/hanzoai/tasks/common/primitives"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user