@temporalio/core-bridge 1.11.6 → 1.11.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.lock +902 -468
- package/package.json +3 -3
- package/releases/aarch64-apple-darwin/index.node +0 -0
- package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
- package/releases/x86_64-apple-darwin/index.node +0 -0
- package/releases/x86_64-pc-windows-msvc/index.node +0 -0
- package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
- package/sdk-core/.cargo/config.toml +5 -0
- package/sdk-core/.github/workflows/per-pr.yml +59 -5
- package/sdk-core/Cargo.toml +3 -2
- package/sdk-core/client/Cargo.toml +3 -3
- package/sdk-core/client/src/lib.rs +154 -161
- package/sdk-core/client/src/metrics.rs +15 -8
- package/sdk-core/client/src/proxy.rs +1 -1
- package/sdk-core/client/src/raw.rs +176 -33
- package/sdk-core/client/src/retry.rs +102 -465
- package/sdk-core/client/src/worker_registry/mod.rs +2 -2
- package/sdk-core/client/src/workflow_handle/mod.rs +19 -1
- package/sdk-core/core/Cargo.toml +12 -14
- package/sdk-core/core/benches/workflow_replay.rs +1 -1
- package/sdk-core/core/src/abstractions.rs +2 -2
- package/sdk-core/core/src/core_tests/activity_tasks.rs +99 -46
- package/sdk-core/core/src/core_tests/child_workflows.rs +68 -9
- package/sdk-core/core/src/core_tests/determinism.rs +2 -2
- package/sdk-core/core/src/core_tests/local_activities.rs +20 -33
- package/sdk-core/core/src/core_tests/mod.rs +7 -8
- package/sdk-core/core/src/core_tests/queries.rs +79 -79
- package/sdk-core/core/src/core_tests/replay_flag.rs +5 -5
- package/sdk-core/core/src/core_tests/updates.rs +6 -6
- package/sdk-core/core/src/core_tests/workers.rs +19 -22
- package/sdk-core/core/src/core_tests/workflow_cancels.rs +3 -3
- package/sdk-core/core/src/core_tests/workflow_tasks.rs +154 -106
- package/sdk-core/core/src/ephemeral_server/mod.rs +66 -10
- package/sdk-core/core/src/internal_flags.rs +103 -12
- package/sdk-core/core/src/lib.rs +21 -13
- package/sdk-core/core/src/pollers/mod.rs +200 -6
- package/sdk-core/core/src/pollers/poll_buffer.rs +32 -8
- package/sdk-core/core/src/protosext/mod.rs +7 -7
- package/sdk-core/core/src/protosext/protocol_messages.rs +2 -2
- package/sdk-core/core/src/replay/mod.rs +8 -9
- package/sdk-core/core/src/retry_logic.rs +8 -6
- package/sdk-core/core/src/telemetry/log_export.rs +4 -4
- package/sdk-core/core/src/telemetry/metrics.rs +111 -25
- package/sdk-core/core/src/telemetry/mod.rs +11 -4
- package/sdk-core/core/src/telemetry/otel.rs +108 -144
- package/sdk-core/core/src/telemetry/prometheus_server.rs +1 -4
- package/sdk-core/core/src/test_help/mod.rs +27 -21
- package/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +7 -5
- package/sdk-core/core/src/worker/activities/local_activities.rs +9 -9
- package/sdk-core/core/src/worker/activities.rs +34 -46
- package/sdk-core/core/src/worker/client/mocks.rs +24 -2
- package/sdk-core/core/src/worker/client.rs +169 -33
- package/sdk-core/core/src/worker/mod.rs +132 -56
- package/sdk-core/core/src/worker/nexus.rs +410 -0
- package/sdk-core/core/src/worker/tuner/resource_based.rs +27 -5
- package/sdk-core/core/src/worker/tuner.rs +29 -2
- package/sdk-core/core/src/worker/workflow/driven_workflow.rs +8 -3
- package/sdk-core/core/src/worker/workflow/history_update.rs +5 -8
- package/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +83 -87
- package/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +38 -38
- package/sdk-core/core/src/worker/workflow/machines/cancel_nexus_op_state_machine.rs +117 -0
- package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +8 -18
- package/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +114 -108
- package/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +16 -31
- package/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +7 -14
- package/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +8 -15
- package/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +34 -75
- package/sdk-core/core/src/worker/workflow/machines/mod.rs +26 -48
- package/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +10 -17
- package/sdk-core/core/src/worker/workflow/machines/nexus_operation_state_machine.rs +543 -0
- package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +22 -31
- package/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +53 -51
- package/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +40 -45
- package/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
- package/sdk-core/core/src/worker/workflow/machines/update_state_machine.rs +8 -10
- package/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +24 -30
- package/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +182 -116
- package/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +4 -8
- package/sdk-core/core/src/worker/workflow/managed_run.rs +75 -45
- package/sdk-core/core/src/worker/workflow/mod.rs +104 -55
- package/sdk-core/core/src/worker/workflow/run_cache.rs +23 -4
- package/sdk-core/core/src/worker/workflow/wft_extraction.rs +4 -4
- package/sdk-core/core/src/worker/workflow/wft_poller.rs +3 -3
- package/sdk-core/core/src/worker/workflow/workflow_stream.rs +32 -13
- package/sdk-core/core-api/Cargo.toml +2 -3
- package/sdk-core/core-api/src/errors.rs +22 -20
- package/sdk-core/core-api/src/lib.rs +24 -5
- package/sdk-core/core-api/src/telemetry/metrics.rs +27 -1
- package/sdk-core/core-api/src/telemetry.rs +37 -3
- package/sdk-core/core-api/src/worker.rs +36 -3
- package/sdk-core/docker/docker-compose-ci.yaml +25 -0
- package/sdk-core/etc/otel-collector-ci.yaml +36 -0
- package/sdk-core/etc/otel-collector-config.yaml +3 -3
- package/sdk-core/etc/prometheus.yaml +1 -1
- package/sdk-core/fsm/Cargo.toml +1 -1
- package/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +1 -1
- package/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +3 -4
- package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +1 -1
- package/sdk-core/fsm/rustfsm_trait/Cargo.toml +1 -1
- package/sdk-core/sdk/Cargo.toml +1 -2
- package/sdk-core/sdk/src/activity_context.rs +1 -1
- package/sdk-core/sdk/src/interceptors.rs +1 -1
- package/sdk-core/sdk/src/lib.rs +126 -54
- package/sdk-core/sdk/src/workflow_context/options.rs +184 -74
- package/sdk-core/sdk/src/workflow_context.rs +193 -79
- package/sdk-core/sdk/src/workflow_future.rs +151 -131
- package/sdk-core/sdk-core-protos/Cargo.toml +3 -4
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/VERSION +1 -1
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/account/v1/message.proto +46 -0
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto +254 -5
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto +108 -2
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto +94 -15
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto +102 -4
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/nexus/v1/message.proto +84 -0
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto +25 -10
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/region/v1/message.proto +14 -1
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/resource/v1/message.proto +25 -0
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/sink/v1/message.proto +41 -0
- package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/usage/v1/message.proto +59 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/.github/PULL_REQUEST_TEMPLATE.md +2 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/.github/workflows/create-release.yml +135 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/.github/workflows/push-to-buf.yml +20 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/.github/workflows/trigger-api-go-delete-release.yml +13 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/.github/workflows/trigger-api-go-publish-release.yml +13 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/.github/workflows/trigger-api-go-update.yml +13 -21
- package/sdk-core/sdk-core-protos/protos/api_upstream/Makefile +2 -2
- package/sdk-core/sdk-core-protos/protos/api_upstream/buf.yaml +1 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv2.json +3386 -1047
- package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv3.yaml +3529 -1144
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/batch/v1/message.proto +39 -1
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/command/v1/message.proto +6 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/common/v1/message.proto +39 -1
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/deployment/v1/message.proto +252 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +1 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/common.proto +6 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/deployment.proto +96 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/event_type.proto +2 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +2 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/nexus.proto +42 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/workflow.proto +43 -2
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/errordetails/v1/message.proto +13 -1
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/failure/v1/message.proto +14 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/history/v1/message.proto +70 -12
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/nexus/v1/message.proto +12 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/query/v1/message.proto +9 -2
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +46 -2
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflow/v1/message.proto +206 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +482 -97
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +230 -43
- package/sdk-core/sdk-core-protos/protos/local/temporal/sdk/core/core_interface.proto +6 -0
- package/sdk-core/sdk-core-protos/protos/local/temporal/sdk/core/nexus/nexus.proto +71 -0
- package/sdk-core/sdk-core-protos/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +46 -2
- package/sdk-core/sdk-core-protos/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +55 -9
- package/sdk-core/sdk-core-protos/src/history_builder.rs +5 -5
- package/sdk-core/sdk-core-protos/src/history_info.rs +5 -6
- package/sdk-core/sdk-core-protos/src/lib.rs +414 -34
- package/sdk-core/sdk-core-protos/src/task_token.rs +1 -1
- package/sdk-core/test-utils/Cargo.toml +3 -11
- package/sdk-core/test-utils/src/canned_histories.rs +1 -1
- package/sdk-core/test-utils/src/lib.rs +159 -85
- package/sdk-core/tests/fuzzy_workflow.rs +3 -3
- package/sdk-core/tests/heavy_tests.rs +3 -3
- package/sdk-core/tests/integ_tests/client_tests.rs +171 -20
- package/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +45 -39
- package/sdk-core/tests/integ_tests/heartbeat_tests.rs +7 -6
- package/sdk-core/tests/integ_tests/metrics_tests.rs +492 -35
- package/sdk-core/tests/integ_tests/polling_tests.rs +7 -5
- package/sdk-core/tests/integ_tests/queries_tests.rs +14 -17
- package/sdk-core/tests/integ_tests/update_tests.rs +47 -44
- package/sdk-core/tests/integ_tests/visibility_tests.rs +4 -3
- package/sdk-core/tests/integ_tests/worker_tests.rs +5 -5
- package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +15 -13
- package/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +28 -14
- package/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +7 -1
- package/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +57 -4
- package/sdk-core/tests/integ_tests/workflow_tests/eager.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +24 -18
- package/sdk-core/tests/integ_tests/workflow_tests/nexus.rs +506 -0
- package/sdk-core/tests/integ_tests/workflow_tests/patches.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/priority.rs +104 -0
- package/sdk-core/tests/integ_tests/workflow_tests/replay.rs +34 -31
- package/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -7
- package/sdk-core/tests/integ_tests/workflow_tests.rs +152 -116
- package/sdk-core/tests/main.rs +36 -6
- package/sdk-core/tests/runner.rs +30 -9
- package/src/conversions/slot_supplier_bridge.rs +4 -0
- package/src/conversions.rs +1 -0
- package/src/worker.rs +5 -7
- package/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -78
|
@@ -9,7 +9,9 @@ option java_outer_classname = "MessageProto";
|
|
|
9
9
|
option ruby_package = "Temporalio::Api::Cloud::Namespace::V1";
|
|
10
10
|
option csharp_namespace = "Temporalio.Api.Cloud.Namespace.V1";
|
|
11
11
|
|
|
12
|
+
import "temporal/api/cloud/resource/v1/message.proto";
|
|
12
13
|
import "google/protobuf/timestamp.proto";
|
|
14
|
+
import "temporal/api/cloud/sink/v1/message.proto";
|
|
13
15
|
|
|
14
16
|
message CertificateFilterSpec {
|
|
15
17
|
// The common_name in the certificate.
|
|
@@ -31,7 +33,13 @@ message MtlsAuthSpec {
|
|
|
31
33
|
// This must only be one value, but the CA can have a chain.
|
|
32
34
|
//
|
|
33
35
|
// (-- api-linter: core::0140::base64=disabled --)
|
|
34
|
-
|
|
36
|
+
// Deprecated: Not supported after 2024-05-13-00 api version. Use accepted_client_ca instead.
|
|
37
|
+
// temporal:versioning:max_version=2024-05-13-00
|
|
38
|
+
string accepted_client_ca_deprecated = 1;
|
|
39
|
+
// The ca cert(s) in PEM format that the clients can use for authentication and authorization.
|
|
40
|
+
// This must only be one value, but the CA can have a chain.
|
|
41
|
+
// temporal:versioning:min_version=2024-05-13-00
|
|
42
|
+
bytes accepted_client_ca = 4;
|
|
35
43
|
// Certificate filters which, if specified, only allow connections from client certificates whose distinguished name properties match at least one of the filters.
|
|
36
44
|
// This allows limiting access to specific end-entity certificates.
|
|
37
45
|
// Optional, default is empty.
|
|
@@ -87,10 +95,30 @@ message NamespaceSpec {
|
|
|
87
95
|
// Supported attribute types: text, keyword, int, double, bool, datetime, keyword_list.
|
|
88
96
|
// NOTE: currently deleting a search attribute is not supported.
|
|
89
97
|
// Optional, default is empty.
|
|
90
|
-
|
|
98
|
+
// Deprecated: Not supported after 2024-10-01-00 api version. Use search_attributes instead.
|
|
99
|
+
// temporal:versioning:max_version=2024-10-01-00
|
|
100
|
+
map<string, string> custom_search_attributes = 5 [deprecated = true];
|
|
101
|
+
// The custom search attributes to use for the namespace.
|
|
102
|
+
// The name of the attribute is the key and the type is the value.
|
|
103
|
+
// Note: currently deleting a search attribute is not supported.
|
|
104
|
+
// Optional, default is empty.
|
|
105
|
+
// temporal:versioning:min_version=2024-10-01-00
|
|
106
|
+
// temporal:enums:replaces=custom_search_attributes
|
|
107
|
+
map<string, SearchAttributeType> search_attributes = 8;
|
|
91
108
|
// Codec server spec used by UI to decode payloads for all users interacting with this namespace.
|
|
92
109
|
// Optional, default is unset.
|
|
93
110
|
CodecServerSpec codec_server = 6;
|
|
111
|
+
|
|
112
|
+
enum SearchAttributeType {
|
|
113
|
+
SEARCH_ATTRIBUTE_TYPE_UNSPECIFIED = 0;
|
|
114
|
+
SEARCH_ATTRIBUTE_TYPE_TEXT = 1;
|
|
115
|
+
SEARCH_ATTRIBUTE_TYPE_KEYWORD = 2;
|
|
116
|
+
SEARCH_ATTRIBUTE_TYPE_INT = 3;
|
|
117
|
+
SEARCH_ATTRIBUTE_TYPE_DOUBLE = 4;
|
|
118
|
+
SEARCH_ATTRIBUTE_TYPE_BOOL = 5;
|
|
119
|
+
SEARCH_ATTRIBUTE_TYPE_DATETIME = 6;
|
|
120
|
+
SEARCH_ATTRIBUTE_TYPE_KEYWORD_LIST = 7;
|
|
121
|
+
}
|
|
94
122
|
}
|
|
95
123
|
|
|
96
124
|
message Endpoints {
|
|
@@ -133,7 +161,14 @@ message Namespace {
|
|
|
133
161
|
// The namespace specification.
|
|
134
162
|
NamespaceSpec spec = 3;
|
|
135
163
|
// The current state of the namespace.
|
|
136
|
-
|
|
164
|
+
// Deprecated: Not supported after 2024-10-01-00 api version. Use state instead.
|
|
165
|
+
// temporal:versioning:max_version=2024-10-01-00
|
|
166
|
+
string state_deprecated = 4 [deprecated = true];
|
|
167
|
+
// The current state of the namespace.
|
|
168
|
+
// For any failed state, reach out to Temporal Cloud support for remediation.
|
|
169
|
+
// temporal:versioning:min_version=2024-10-01-00
|
|
170
|
+
// temporal:enums:replaces=state_deprecated
|
|
171
|
+
temporal.api.cloud.resource.v1.ResourceState state = 13;
|
|
137
172
|
// The id of the async operation that is creating/updating/deleting the namespace, if any.
|
|
138
173
|
string async_operation_id = 5;
|
|
139
174
|
// The endpoints for the namespace.
|
|
@@ -158,7 +193,70 @@ message NamespaceRegionStatus {
|
|
|
158
193
|
// The current state of the namespace region.
|
|
159
194
|
// Possible values: adding, active, passive, removing, failed.
|
|
160
195
|
// For any failed state, reach out to Temporal Cloud support for remediation.
|
|
161
|
-
|
|
196
|
+
// Deprecated: Not supported after 2024-10-01-00 api version. Use state instead.
|
|
197
|
+
// temporal:versioning:max_version=2024-10-01-00
|
|
198
|
+
string state_deprecated = 1 [deprecated = true];
|
|
199
|
+
// The current state of the namespace region.
|
|
200
|
+
// temporal:versioning:min_version=2024-10-01-00
|
|
201
|
+
// temporal:enums:replaces=state_deprecated
|
|
202
|
+
State state = 3;
|
|
162
203
|
// The id of the async operation that is making changes to where the namespace is available, if any.
|
|
163
204
|
string async_operation_id = 2;
|
|
205
|
+
|
|
206
|
+
enum State {
|
|
207
|
+
STATE_UNSPECIFIED = 0;
|
|
208
|
+
STATE_ADDING= 1; // The region is being added to the namespace.
|
|
209
|
+
STATE_ACTIVE= 2; // The namespace is active in this region.
|
|
210
|
+
STATE_PASSIVE = 3; // The namespace is passive in this region.
|
|
211
|
+
STATE_REMOVING = 4; // The region is being removed from the namespace.
|
|
212
|
+
STATE_FAILED = 5; // The region failed to be added/removed, check failure_reason in the last async_operation status for more details.
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
message ExportSinkSpec {
|
|
217
|
+
// The unique name of the export sink, it can't be changed once set.
|
|
218
|
+
string name = 1;
|
|
219
|
+
|
|
220
|
+
// A flag indicating whether the export sink is enabled or not.
|
|
221
|
+
bool enabled = 2;
|
|
222
|
+
|
|
223
|
+
// The S3 configuration details when destination_type is S3.
|
|
224
|
+
temporal.api.cloud.sink.v1.S3Spec s3 = 3;
|
|
225
|
+
|
|
226
|
+
// This is a feature under development. We will allow GCS sink support for GCP Namespaces.
|
|
227
|
+
// The GCS configuration details when destination_type is GCS.
|
|
228
|
+
temporal.api.cloud.sink.v1.GCSSpec gcs = 4;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
message ExportSink {
|
|
232
|
+
// The unique name of the export sink.
|
|
233
|
+
string name = 1;
|
|
234
|
+
|
|
235
|
+
// The version of the export sink resource.
|
|
236
|
+
string resource_version = 2;
|
|
237
|
+
|
|
238
|
+
// The current state of the export sink.
|
|
239
|
+
temporal.api.cloud.resource.v1.ResourceState state = 3;
|
|
240
|
+
|
|
241
|
+
// The specification details of the export sink.
|
|
242
|
+
ExportSinkSpec spec = 4;
|
|
243
|
+
|
|
244
|
+
// The health status of the export sink.
|
|
245
|
+
Health health = 5;
|
|
246
|
+
|
|
247
|
+
// An error message describing any issues with the export sink, if applicable.
|
|
248
|
+
string error_message = 6;
|
|
249
|
+
|
|
250
|
+
// The timestamp of the latest successful data export.
|
|
251
|
+
google.protobuf.Timestamp latest_data_export_time = 7;
|
|
252
|
+
|
|
253
|
+
// The timestamp of the last health check performed on the export sink.
|
|
254
|
+
google.protobuf.Timestamp last_health_check_time = 8;
|
|
255
|
+
|
|
256
|
+
enum Health {
|
|
257
|
+
HEALTH_UNSPECIFIED = 0;
|
|
258
|
+
HEALTH_OK = 1;
|
|
259
|
+
HEALTH_ERROR_INTERNAL = 2;
|
|
260
|
+
HEALTH_ERROR_USER_CONFIGURATION = 3;
|
|
261
|
+
}
|
|
164
262
|
}
|
package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/nexus/v1/message.proto
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package temporal.api.cloud.nexus.v1;
|
|
4
|
+
|
|
5
|
+
option go_package = "go.temporal.io/api/cloud/nexus/v1;nexus";
|
|
6
|
+
option java_package = "io.temporal.api.cloud.nexus.v1";
|
|
7
|
+
option java_multiple_files = true;
|
|
8
|
+
option java_outer_classname = "MessageProto";
|
|
9
|
+
option ruby_package = "Temporalio::Api::Cloud::Nexus::V1";
|
|
10
|
+
option csharp_namespace = "Temporalio.Api.Cloud.Nexus.V1";
|
|
11
|
+
|
|
12
|
+
import "temporal/api/cloud/resource/v1/message.proto";
|
|
13
|
+
import "google/protobuf/timestamp.proto";
|
|
14
|
+
|
|
15
|
+
message EndpointSpec {
|
|
16
|
+
// The name of the endpoint. Must be unique within an account.
|
|
17
|
+
// The name must match `^[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9]$`.
|
|
18
|
+
// This field is mutable.
|
|
19
|
+
string name = 1;
|
|
20
|
+
|
|
21
|
+
// Indicates where the endpoint should forward received nexus requests to.
|
|
22
|
+
EndpointTargetSpec target_spec = 2;
|
|
23
|
+
|
|
24
|
+
// The set of policies (e.g. authorization) for the endpoint. Each request's caller
|
|
25
|
+
// must match with at least one of the specs to be accepted by the endpoint.
|
|
26
|
+
// This field is mutable.
|
|
27
|
+
repeated EndpointPolicySpec policy_specs = 3;
|
|
28
|
+
|
|
29
|
+
// The markdown description of the endpoint - optional.
|
|
30
|
+
string description = 4;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
message EndpointTargetSpec {
|
|
34
|
+
oneof variant {
|
|
35
|
+
// A target spec for routing nexus requests to a specific cloud namespace worker.
|
|
36
|
+
WorkerTargetSpec worker_target_spec = 1;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
message WorkerTargetSpec {
|
|
41
|
+
// The target cloud namespace to route requests to. Namespace must be in same account as the endpoint. This field is mutable.
|
|
42
|
+
string namespace_id = 1;
|
|
43
|
+
|
|
44
|
+
// The task queue on the cloud namespace to route requests to. This field is mutable.
|
|
45
|
+
string task_queue = 2;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
message EndpointPolicySpec {
|
|
49
|
+
oneof variant {
|
|
50
|
+
// A policy spec that allows one caller namespace to access the endpoint.
|
|
51
|
+
AllowedCloudNamespacePolicySpec allowed_cloud_namespace_policy_spec = 1;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
message AllowedCloudNamespacePolicySpec {
|
|
56
|
+
// The namespace that is allowed to call into this endpoint. Calling namespace must be in same account as the endpoint.
|
|
57
|
+
string namespace_id = 1;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// An endpoint that receives and then routes Nexus requests
|
|
61
|
+
message Endpoint {
|
|
62
|
+
// The id of the endpoint. This is generated by the server and is immutable.
|
|
63
|
+
string id = 1;
|
|
64
|
+
|
|
65
|
+
// The current version of the endpoint specification.
|
|
66
|
+
// The next update operation must include this version.
|
|
67
|
+
string resource_version = 2;
|
|
68
|
+
|
|
69
|
+
// The endpoint specification.
|
|
70
|
+
EndpointSpec spec = 3;
|
|
71
|
+
|
|
72
|
+
// The current state of the endpoint.
|
|
73
|
+
// For any failed state, reach out to Temporal Cloud support for remediation.
|
|
74
|
+
temporal.api.cloud.resource.v1.ResourceState state = 4;
|
|
75
|
+
|
|
76
|
+
// The id of any ongoing async operation that is creating, updating, or deleting the endpoint, if any.
|
|
77
|
+
string async_operation_id = 5;
|
|
78
|
+
|
|
79
|
+
// The date and time when the endpoint was created.
|
|
80
|
+
google.protobuf.Timestamp created_time = 6;
|
|
81
|
+
|
|
82
|
+
// The date and time when the endpoint was last modified.
|
|
83
|
+
google.protobuf.Timestamp last_modified_time = 7;
|
|
84
|
+
}
|
|
@@ -14,23 +14,38 @@ import "google/protobuf/timestamp.proto";
|
|
|
14
14
|
import "google/protobuf/any.proto";
|
|
15
15
|
|
|
16
16
|
message AsyncOperation {
|
|
17
|
-
// The operation id
|
|
17
|
+
// The operation id.
|
|
18
18
|
string id = 1;
|
|
19
|
-
// The current state of this operation
|
|
20
|
-
// Possible values are: pending, in_progress, failed, cancelled, fulfilled
|
|
21
|
-
|
|
22
|
-
//
|
|
19
|
+
// The current state of this operation.
|
|
20
|
+
// Possible values are: pending, in_progress, failed, cancelled, fulfilled.
|
|
21
|
+
// Deprecated: Not supported after 2024-10-01-00 api version. Use state instead.
|
|
22
|
+
// temporal:versioning:max_version=2024-10-01-00
|
|
23
|
+
string state_deprecated = 2 [deprecated = true];
|
|
24
|
+
// The current state of this operation.
|
|
25
|
+
// temporal:versioning:min_version=2024-10-01-00
|
|
26
|
+
// temporal:enums:replaces=state_deprecated
|
|
27
|
+
State state = 9;
|
|
28
|
+
// The recommended duration to check back for an update in the operation's state.
|
|
23
29
|
google.protobuf.Duration check_duration = 3;
|
|
24
|
-
// The type of operation being performed
|
|
30
|
+
// The type of operation being performed.
|
|
25
31
|
string operation_type = 4;
|
|
26
|
-
// The input to the operation being performed
|
|
32
|
+
// The input to the operation being performed.
|
|
27
33
|
//
|
|
28
34
|
// (-- api-linter: core::0146::any=disabled --)
|
|
29
35
|
google.protobuf.Any operation_input = 5;
|
|
30
|
-
// If the operation failed, the reason for the failure
|
|
36
|
+
// If the operation failed, the reason for the failure.
|
|
31
37
|
string failure_reason = 6;
|
|
32
|
-
// The date and time when the operation initiated
|
|
38
|
+
// The date and time when the operation initiated.
|
|
33
39
|
google.protobuf.Timestamp started_time = 7;
|
|
34
|
-
// The date and time when the operation completed
|
|
40
|
+
// The date and time when the operation completed.
|
|
35
41
|
google.protobuf.Timestamp finished_time = 8;
|
|
42
|
+
|
|
43
|
+
enum State {
|
|
44
|
+
STATE_UNSPECIFIED = 0;
|
|
45
|
+
STATE_PENDING = 1; // The operation is pending.
|
|
46
|
+
STATE_IN_PROGRESS = 2; // The operation is in progress.
|
|
47
|
+
STATE_FAILED = 3; // The operation failed, check failure_reason for more details.
|
|
48
|
+
STATE_CANCELLED = 4; // The operation was cancelled.
|
|
49
|
+
STATE_FULFILLED = 5; // The operation was fulfilled.
|
|
50
|
+
}
|
|
36
51
|
}
|
|
@@ -14,9 +14,22 @@ message Region {
|
|
|
14
14
|
string id = 1;
|
|
15
15
|
// The name of the cloud provider that's hosting the region.
|
|
16
16
|
// Currently only "aws" is supported.
|
|
17
|
-
|
|
17
|
+
// Deprecated: Not supported after 2024-10-01-00 api version. Use cloud_provider instead.
|
|
18
|
+
// temporal:versioning:max_version=2024-10-01-00
|
|
19
|
+
string cloud_provider_deprecated = 2 [deprecated = true];
|
|
20
|
+
// The cloud provider that's hosting the region.
|
|
21
|
+
// temporal:versioning:min_version=2024-10-01-00
|
|
22
|
+
// temporal:enums:replaces=cloud_provider_deprecated
|
|
23
|
+
CloudProvider cloud_provider = 5;
|
|
18
24
|
// The region identifier as defined by the cloud provider.
|
|
19
25
|
string cloud_provider_region = 3;
|
|
20
26
|
// The human readable location of the region.
|
|
21
27
|
string location = 4;
|
|
28
|
+
|
|
29
|
+
// The cloud provider that's hosting the region.
|
|
30
|
+
enum CloudProvider {
|
|
31
|
+
CLOUD_PROVIDER_UNSPECIFIED = 0;
|
|
32
|
+
CLOUD_PROVIDER_AWS = 1;
|
|
33
|
+
CLOUD_PROVIDER_GCP = 2;
|
|
34
|
+
}
|
|
22
35
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package temporal.api.cloud.resource.v1;
|
|
4
|
+
|
|
5
|
+
option go_package = "go.temporal.io/api/cloud/resource/v1;resource";
|
|
6
|
+
option java_package = "io.temporal.api.cloud.resource.v1";
|
|
7
|
+
option java_multiple_files = true;
|
|
8
|
+
option java_outer_classname = "MessageProto";
|
|
9
|
+
option ruby_package = "Temporalio::Api::Cloud::Resource::V1";
|
|
10
|
+
option csharp_namespace = "Temporalio.Api.Cloud.Resource.V1";
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
enum ResourceState {
|
|
14
|
+
RESOURCE_STATE_UNSPECIFIED = 0;
|
|
15
|
+
RESOURCE_STATE_ACTIVATING = 1; // The resource is being activated.
|
|
16
|
+
RESOURCE_STATE_ACTIVATION_FAILED = 2; // The resource failed to activate. This is an error state. Reach out to support for remediation.
|
|
17
|
+
RESOURCE_STATE_ACTIVE = 3; // The resource is active and ready to use.
|
|
18
|
+
RESOURCE_STATE_UPDATING = 4; // The resource is being updated.
|
|
19
|
+
RESOURCE_STATE_UPDATE_FAILED = 5; // The resource failed to update. This is an error state. Reach out to support for remediation.
|
|
20
|
+
RESOURCE_STATE_DELETING = 6; // The resource is being deleted.
|
|
21
|
+
RESOURCE_STATE_DELETE_FAILED = 7; // The resource failed to delete. This is an error state. Reach out to support for remediation.
|
|
22
|
+
RESOURCE_STATE_DELETED = 8; // The resource has been deleted.
|
|
23
|
+
RESOURCE_STATE_SUSPENDED = 9; // The resource is suspended and not available for use. Reach out to support for remediation.
|
|
24
|
+
RESOURCE_STATE_EXPIRED = 10; // The resource has expired and is no longer available for use.
|
|
25
|
+
}
|
package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/sink/v1/message.proto
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package temporal.api.cloud.sink.v1;
|
|
4
|
+
|
|
5
|
+
option go_package = "go.temporal.io/api/cloud/sink/v1;sink";
|
|
6
|
+
option java_package = "io.temporal.api.cloud.sink.v1";
|
|
7
|
+
option java_multiple_files = true;
|
|
8
|
+
option java_outer_classname = "MessageProto";
|
|
9
|
+
option ruby_package = "Temporalio::Api::Cloud::Sink::V1";
|
|
10
|
+
option csharp_namespace = "Temporalio.Api.Cloud.Sink.V1";
|
|
11
|
+
|
|
12
|
+
message S3Spec {
|
|
13
|
+
// The IAM role that Temporal Cloud assumes for writing records to the customer's S3 bucket.
|
|
14
|
+
string role_name = 1;
|
|
15
|
+
|
|
16
|
+
// The name of the destination S3 bucket where Temporal will send data.
|
|
17
|
+
string bucket_name = 2;
|
|
18
|
+
|
|
19
|
+
// The region where the S3 bucket is located.
|
|
20
|
+
string region = 3;
|
|
21
|
+
|
|
22
|
+
// The AWS Key Management Service (KMS) ARN used for encryption.
|
|
23
|
+
string kms_arn = 4;
|
|
24
|
+
|
|
25
|
+
// The AWS account ID associated with the S3 bucket and the assumed role.
|
|
26
|
+
string aws_account_id = 5;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
message GCSSpec {
|
|
30
|
+
// The customer service account ID that Temporal Cloud impersonates for writing records to the customer's GCS bucket.
|
|
31
|
+
string sa_id = 1;
|
|
32
|
+
|
|
33
|
+
// The name of the destination GCS bucket where Temporal will send data.
|
|
34
|
+
string bucket_name = 2;
|
|
35
|
+
|
|
36
|
+
// The GCP project ID associated with the GCS bucket and service account.
|
|
37
|
+
string gcp_project_id = 3;
|
|
38
|
+
|
|
39
|
+
// The region of the gcs bucket
|
|
40
|
+
string region = 4;
|
|
41
|
+
}
|
package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/temporal/api/cloud/usage/v1/message.proto
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package temporal.api.cloud.usage.v1;
|
|
4
|
+
|
|
5
|
+
option go_package = "go.temporal.io/api/cloud/usage/v1;usage";
|
|
6
|
+
option java_package = "io.temporal.api.cloud.usage.v1";
|
|
7
|
+
option java_multiple_files = true;
|
|
8
|
+
option java_outer_classname = "MessageProto";
|
|
9
|
+
option ruby_package = "Temporalio::Api::Cloud::Usage::V1";
|
|
10
|
+
option csharp_namespace = "Temporalio.Api.Cloud.Usage.V1";
|
|
11
|
+
|
|
12
|
+
import "google/protobuf/timestamp.proto";
|
|
13
|
+
|
|
14
|
+
message Summary {
|
|
15
|
+
// Start of UTC day for now (inclusive)
|
|
16
|
+
google.protobuf.Timestamp start_time = 1;
|
|
17
|
+
// End of UTC day for now (exclusive)
|
|
18
|
+
google.protobuf.Timestamp end_time = 2;
|
|
19
|
+
// Records grouped by namespace
|
|
20
|
+
repeated RecordGroup record_groups = 3;
|
|
21
|
+
// True if data for given time window is not fully available yet (e.g. delays)
|
|
22
|
+
// When true, records for the given time range could still be added/updated in the future (until false)
|
|
23
|
+
bool incomplete = 4;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
message RecordGroup {
|
|
27
|
+
// GroupBy keys and their values for this record group. Multiple fields are combined with logical AND.
|
|
28
|
+
repeated GroupBy group_bys = 1;
|
|
29
|
+
repeated Record records = 2;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
message GroupBy {
|
|
33
|
+
GroupByKey key = 1;
|
|
34
|
+
string value = 2;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
message Record {
|
|
38
|
+
RecordType type = 1;
|
|
39
|
+
RecordUnit unit = 2;
|
|
40
|
+
double value = 3;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
enum RecordType {
|
|
44
|
+
RECORD_TYPE_UNSPECIFIED = 0;
|
|
45
|
+
RECORD_TYPE_ACTIONS = 1;
|
|
46
|
+
RECORD_TYPE_ACTIVE_STORAGE = 2;
|
|
47
|
+
RECORD_TYPE_RETAINED_STORAGE = 3;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
enum RecordUnit {
|
|
51
|
+
RECORD_UNIT_UNSPECIFIED = 0;
|
|
52
|
+
RECORD_UNIT_NUMBER = 1;
|
|
53
|
+
RECORD_UNIT_BYTE_SECONDS = 2;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
enum GroupByKey {
|
|
57
|
+
GROUP_BY_KEY_UNSPECIFIED = 0;
|
|
58
|
+
GROUP_BY_KEY_NAMESPACE = 1;
|
|
59
|
+
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
_**READ BEFORE MERGING:** All PRs require approval by both Server AND SDK teams before merging! This is why the number of required approvals is "2" and not "1"--two reviewers from the same team is NOT sufficient. If your PR is not approved by someone in BOTH teams, it may be summarily reverted._
|
|
2
|
+
|
|
1
3
|
<!-- Describe what has changed in this PR -->
|
|
2
4
|
**What changed?**
|
|
3
5
|
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
name: "Create release"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
branch:
|
|
7
|
+
description: "Branch to be tagged"
|
|
8
|
+
required: true
|
|
9
|
+
default: master
|
|
10
|
+
tag:
|
|
11
|
+
description: "Tag for new version (v1.23.4)"
|
|
12
|
+
required: true
|
|
13
|
+
base_tag:
|
|
14
|
+
description: "Base tag to generate commit list for release notes"
|
|
15
|
+
required: true
|
|
16
|
+
skip_sdk_check:
|
|
17
|
+
description: "Skip sdk-go compatibility check"
|
|
18
|
+
type: boolean
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
prepare-inputs:
|
|
22
|
+
name: "Prepare inputs"
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
outputs:
|
|
25
|
+
api_commit_sha: ${{ steps.pin_commits.outputs.api_commit_sha }}
|
|
26
|
+
api_go_commit_sha: ${{ steps.pin_commits.outputs.api_go_commit_sha }}
|
|
27
|
+
steps:
|
|
28
|
+
- name: Checkout api
|
|
29
|
+
uses: actions/checkout@v4
|
|
30
|
+
with:
|
|
31
|
+
ref: ${{ github.event.inputs.branch }}
|
|
32
|
+
fetch-depth: 0
|
|
33
|
+
fetch-tags: true
|
|
34
|
+
path: api
|
|
35
|
+
|
|
36
|
+
- name: Checkout api-go
|
|
37
|
+
uses: actions/checkout@v4
|
|
38
|
+
with:
|
|
39
|
+
repository: temporalio/api-go
|
|
40
|
+
ref: ${{ github.event.inputs.branch }}
|
|
41
|
+
submodules: true
|
|
42
|
+
path: api-go
|
|
43
|
+
|
|
44
|
+
- name: Validate inputs
|
|
45
|
+
env:
|
|
46
|
+
BRANCH: ${{ github.event.inputs.branch }}
|
|
47
|
+
TAG: ${{ github.event.inputs.tag }}
|
|
48
|
+
BASE_TAG: ${{ github.event.inputs.base_tag }}
|
|
49
|
+
working-directory: ./api
|
|
50
|
+
run: |
|
|
51
|
+
if ! [[ "${TAG}" =~ ^v.* ]]; then
|
|
52
|
+
echo "::error::Tag is not prefixed with 'v'"
|
|
53
|
+
exit 1
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
if [[ -n "$(git tag -l "$TAG")" ]]; then
|
|
57
|
+
echo "::error::Tag already exists"
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
if [[ -z "$BASE_TAG" || -z "$(git tag -l "$BASE_TAG")" ]]; then
|
|
62
|
+
echo "::error::Base tag not specified or does not exist"
|
|
63
|
+
exit 1
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
- name: Pin commits sha
|
|
67
|
+
id: pin_commits
|
|
68
|
+
env:
|
|
69
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
70
|
+
BRANCH: ${{ github.event.inputs.branch }}
|
|
71
|
+
run: |
|
|
72
|
+
API_COMMIT_SHA=$(git -C ./api rev-parse HEAD)
|
|
73
|
+
API_GO_COMMIT_SHA=$(git -C ./api-go rev-parse HEAD)
|
|
74
|
+
API_GO_API_COMMIT_SHA=$(git -C ./api-go rev-parse HEAD:proto/api)
|
|
75
|
+
if [[ "${API_GO_API_COMMIT_SHA}" != "${API_COMMIT_SHA}" ]]; then
|
|
76
|
+
echo "::error::api-go ref ${API_GO_COMMIT_SHA} does not reference api ref ${API_COMMIT_SHA}, api-go repo might not be up-to-date."
|
|
77
|
+
exit 1
|
|
78
|
+
fi
|
|
79
|
+
echo "api_commit_sha=$API_COMMIT_SHA" >> "$GITHUB_OUTPUT"
|
|
80
|
+
echo "api_go_commit_sha=$API_GO_COMMIT_SHA" >> "$GITHUB_OUTPUT"
|
|
81
|
+
|
|
82
|
+
check-compatibility-sdk-go:
|
|
83
|
+
needs: prepare-inputs
|
|
84
|
+
if: ${{ github.event.inputs.skip_sdk_check == false || github.event.inputs.skip_sdk_check == 'false' }}
|
|
85
|
+
uses: temporalio/api-go/.github/workflows/check-sdk-compat.yml@master
|
|
86
|
+
with:
|
|
87
|
+
sdk_ref: latest
|
|
88
|
+
api_ref: ${{ needs.prepare-inputs.outputs.api_go_commit_sha }}
|
|
89
|
+
|
|
90
|
+
create-release:
|
|
91
|
+
name: "Create release"
|
|
92
|
+
needs: [prepare-inputs, check-compatibility-sdk-go]
|
|
93
|
+
if: |
|
|
94
|
+
!cancelled() &&
|
|
95
|
+
needs.prepare-inputs.result == 'success' &&
|
|
96
|
+
contains(fromJSON('["success", "skipped"]'), needs.check-compatibility-sdk-go.result)
|
|
97
|
+
runs-on: ubuntu-latest
|
|
98
|
+
|
|
99
|
+
steps:
|
|
100
|
+
- name: Generate token
|
|
101
|
+
id: generate_token
|
|
102
|
+
uses: actions/create-github-app-token@v1
|
|
103
|
+
with:
|
|
104
|
+
app-id: ${{ secrets.TEMPORAL_CICD_APP_ID }}
|
|
105
|
+
private-key: ${{ secrets.TEMPORAL_CICD_PRIVATE_KEY }}
|
|
106
|
+
owner: ${{ github.repository_owner }}
|
|
107
|
+
|
|
108
|
+
- name: Checkout
|
|
109
|
+
uses: actions/checkout@v4
|
|
110
|
+
with:
|
|
111
|
+
ref: ${{ needs.prepare-inputs.outputs.api_commit_sha }}
|
|
112
|
+
token: ${{ steps.generate_token.outputs.token }}
|
|
113
|
+
|
|
114
|
+
- name: Create release
|
|
115
|
+
env:
|
|
116
|
+
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
|
|
117
|
+
REF: ${{ needs.prepare-inputs.outputs.api_commit_sha }}
|
|
118
|
+
TAG: ${{ github.event.inputs.tag }}
|
|
119
|
+
BASE_TAG: ${{ github.event.inputs.base_tag }}
|
|
120
|
+
run: |
|
|
121
|
+
gh repo set-default ${{ github.repository }}
|
|
122
|
+
gh release create "$TAG" --target "$REF" --latest --generate-notes --notes-start-tag "$BASE_TAG" --draft
|
|
123
|
+
|
|
124
|
+
release-api-go:
|
|
125
|
+
needs: [prepare-inputs, create-release]
|
|
126
|
+
if: |
|
|
127
|
+
!cancelled() &&
|
|
128
|
+
needs.create-release.result == 'success'
|
|
129
|
+
uses: temporalio/api-go/.github/workflows/create-release.yml@master
|
|
130
|
+
with:
|
|
131
|
+
ref: ${{ needs.prepare-inputs.outputs.api_go_commit_sha }}
|
|
132
|
+
tag: ${{ github.event.inputs.tag }}
|
|
133
|
+
api_commit_sha: ${{ needs.prepare-inputs.outputs.api_commit_sha }}
|
|
134
|
+
base_tag: ${{ github.event.inputs.base_tag }}
|
|
135
|
+
secrets: inherit
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Push to Buf Registry
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v**'
|
|
7
|
+
branches:
|
|
8
|
+
- master
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
jobs:
|
|
12
|
+
publish:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout repo
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
- uses: bufbuild/buf-action@v1
|
|
18
|
+
with:
|
|
19
|
+
version: 1.49.0
|
|
20
|
+
token: ${{ secrets.BUF_TEMPORALIO_TOKEN }}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
name: "Trigger api-go delete release"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [deleted]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
trigger-api-go-delete-release:
|
|
9
|
+
uses: temporalio/api-go/.github/workflows/delete-release.yml@master
|
|
10
|
+
with:
|
|
11
|
+
tag: ${{ github.event.release.tag_name }}
|
|
12
|
+
api_commit_sha: ${{ github.event.release.target_commitish }}
|
|
13
|
+
secrets: inherit
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
name: "Trigger api-go publish release"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
trigger-api-go-publish-release:
|
|
9
|
+
uses: temporalio/api-go/.github/workflows/publish-release.yml@master
|
|
10
|
+
with:
|
|
11
|
+
tag: ${{ github.event.release.tag_name }}
|
|
12
|
+
api_commit_sha: ${{ github.event.release.target_commitish }}
|
|
13
|
+
secrets: inherit
|