TriggerArgs

data class TriggerArgs(val approvalConfig: Output<TriggerApprovalConfigArgs>? = null, val bitbucketServerTriggerConfig: Output<TriggerBitbucketServerTriggerConfigArgs>? = null, val build: Output<TriggerBuildArgs>? = null, val description: Output<String>? = null, val disabled: Output<Boolean>? = null, val filename: Output<String>? = null, val filter: Output<String>? = null, val gitFileSource: Output<TriggerGitFileSourceArgs>? = null, val github: Output<TriggerGithubArgs>? = null, val ignoredFiles: Output<List<String>>? = null, val includeBuildLogs: Output<String>? = null, val includedFiles: Output<List<String>>? = null, val location: Output<String>? = null, val name: Output<String>? = null, val project: Output<String>? = null, val pubsubConfig: Output<TriggerPubsubConfigArgs>? = null, val repositoryEventConfig: Output<TriggerRepositoryEventConfigArgs>? = null, val serviceAccount: Output<String>? = null, val sourceToBuild: Output<TriggerSourceToBuildArgs>? = null, val substitutions: Output<Map<String, String>>? = null, val tags: Output<List<String>>? = null, val triggerTemplate: Output<TriggerTriggerTemplateArgs>? = null, val webhookConfig: Output<TriggerWebhookConfigArgs>? = null) : ConvertibleToJava<TriggerArgs>

Configuration for an automated build in response to source repository changes. To get more information about Trigger, see:

Note: You can retrieve the email of the Cloud Build Service Account used in jobs by using the gcp.projects.ServiceIdentity resource.

Example Usage

Cloudbuild Trigger Filename

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerTriggerTemplateArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var filename_trigger = new Trigger("filename-trigger", TriggerArgs.builder()
.filename("cloudbuild.yaml")
.location("us-central1")
.substitutions(Map.ofEntries(
Map.entry("_BAZ", "qux"),
Map.entry("_FOO", "bar")
))
.triggerTemplate(TriggerTriggerTemplateArgs.builder()
.branchName("main")
.repoName("my-repo")
.build())
.build());
}
}

Cloudbuild Trigger Build

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildArtifactsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildArtifactsObjectsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildAvailableSecretsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildOptionsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildSourceArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildSourceStorageSourceArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerTriggerTemplateArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var build_trigger = new Trigger("build-trigger", TriggerArgs.builder()
.build(TriggerBuildArgs.builder()
.artifacts(TriggerBuildArtifactsArgs.builder()
.images("gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA")
.objects(TriggerBuildArtifactsObjectsArgs.builder()
.location("gs://bucket/path/to/somewhere/")
.paths("path")
.build())
.build())
.availableSecrets(TriggerBuildAvailableSecretsArgs.builder()
.secretManager(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
.build())
.logsBucket("gs://mybucket/logs")
.options(TriggerBuildOptionsArgs.builder()
.diskSizeGb(100)
.dynamicSubstitutions(true)
.env("ekey = evalue")
.logStreamingOption("STREAM_OFF")
.logging("LEGACY")
.machineType("N1_HIGHCPU_8")
.requestedVerifyOption("VERIFIED")
.secretEnv("secretenv = svalue")
.sourceProvenanceHash("MD5")
.substitutionOption("ALLOW_LOOSE")
.volumes(TriggerBuildOptionsVolumeArgs.builder()
.name("v1")
.path("v1")
.build())
.workerPool("pool")
.build())
.queueTtl("20s")
.secrets(TriggerBuildSecretArgs.builder()
.kmsKeyName("projects/myProject/locations/global/keyRings/keyring-name/cryptoKeys/key-name")
.secretEnv(Map.of("PASSWORD", "ZW5jcnlwdGVkLXBhc3N3b3JkCg=="))
.build())
.source(TriggerBuildSourceArgs.builder()
.storageSource(TriggerBuildSourceStorageSourceArgs.builder()
.bucket("mybucket")
.object("source_code.tar.gz")
.build())
.build())
.steps(
TriggerBuildStepArgs.builder()
.args(
"cp",
"gs://mybucket/remotefile.zip",
"localfile.zip")
.name("gcr.io/cloud-builders/gsutil")
.secretEnv("MY_SECRET")
.timeout("120s")
.build(),
TriggerBuildStepArgs.builder()
.name("ubuntu")
.script("echo hello")
.build())
.substitutions(Map.ofEntries(
Map.entry("_BAZ", "qux"),
Map.entry("_FOO", "bar")
))
.tags(
"build",
"newFeature")
.build())
.location("global")
.triggerTemplate(TriggerTriggerTemplateArgs.builder()
.branchName("main")
.repoName("my-repo")
.build())
.build());
}
}

Cloudbuild Trigger Service Account

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.serviceAccount.Account;
import com.pulumi.gcp.serviceAccount.AccountArgs;
import com.pulumi.gcp.projects.IAMMember;
import com.pulumi.gcp.projects.IAMMemberArgs;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerTriggerTemplateArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var project = OrganizationsFunctions.getProject();
var cloudbuildServiceAccount = new Account("cloudbuildServiceAccount", AccountArgs.builder()
.accountId("cloud-sa")
.build());
var actAs = new IAMMember("actAs", IAMMemberArgs.builder()
.project(project.applyValue(getProjectResult -> getProjectResult.projectId()))
.role("roles/iam.serviceAccountUser")
.member(cloudbuildServiceAccount.email().applyValue(email -> String.format("serviceAccount:%s", email)))
.build());
var logsWriter = new IAMMember("logsWriter", IAMMemberArgs.builder()
.project(project.applyValue(getProjectResult -> getProjectResult.projectId()))
.role("roles/logging.logWriter")
.member(cloudbuildServiceAccount.email().applyValue(email -> String.format("serviceAccount:%s", email)))
.build());
var service_account_trigger = new Trigger("service-account-trigger", TriggerArgs.builder()
.triggerTemplate(TriggerTriggerTemplateArgs.builder()
.branchName("main")
.repoName("my-repo")
.build())
.serviceAccount(cloudbuildServiceAccount.id())
.filename("cloudbuild.yaml")
.build(), CustomResourceOptions.builder()
.dependsOn(
actAs,
logsWriter)
.build());
}
}

Cloudbuild Trigger Include Build Logs

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGithubArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGithubPushArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var include_build_logs_trigger = new Trigger("include-build-logs-trigger", TriggerArgs.builder()
.filename("cloudbuild.yaml")
.github(TriggerGithubArgs.builder()
.name("terraform-provider-google-beta")
.owner("hashicorp")
.push(TriggerGithubPushArgs.builder()
.branch("^main$")
.build())
.build())
.includeBuildLogs("INCLUDE_BUILD_LOGS_WITH_STATUS")
.location("us-central1")
.build());
}
}

Cloudbuild Trigger Pubsub Config

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.pubsub.Topic;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerPubsubConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerSourceToBuildArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGitFileSourceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var mytopic = new Topic("mytopic");
var pubsub_config_trigger = new Trigger("pubsub-config-trigger", TriggerArgs.builder()
.location("us-central1")
.description("acceptance test example pubsub build trigger")
.pubsubConfig(TriggerPubsubConfigArgs.builder()
.topic(mytopic.id())
.build())
.sourceToBuild(TriggerSourceToBuildArgs.builder()
.uri("https://hashicorp/terraform-provider-google-beta")
.ref("refs/heads/main")
.repoType("GITHUB")
.build())
.gitFileSource(TriggerGitFileSourceArgs.builder()
.path("cloudbuild.yaml")
.uri("https://hashicorp/terraform-provider-google-beta")
.revision("refs/heads/main")
.repoType("GITHUB")
.build())
.substitutions(Map.of("_ACTION", "$(body.message.data.action)"))
.filter("_ACTION.matches('INSERT')")
.build());
}
}

Cloudbuild Trigger Webhook Config

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.secretmanager.Secret;
import com.pulumi.gcp.secretmanager.SecretArgs;
import com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;
import com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;
import com.pulumi.gcp.secretmanager.SecretVersion;
import com.pulumi.gcp.secretmanager.SecretVersionArgs;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.organizations.inputs.GetIAMPolicyArgs;
import com.pulumi.gcp.secretmanager.SecretIamPolicy;
import com.pulumi.gcp.secretmanager.SecretIamPolicyArgs;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerWebhookConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerSourceToBuildArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGitFileSourceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var webhookTriggerSecretKey = new Secret("webhookTriggerSecretKey", SecretArgs.builder()
.secretId("webhook-trigger-secret-key")
.replication(SecretReplicationArgs.builder()
.userManaged(SecretReplicationUserManagedArgs.builder()
.replicas(SecretReplicationUserManagedReplicaArgs.builder()
.location("us-central1")
.build())
.build())
.build())
.build());
var webhookTriggerSecretKeyData = new SecretVersion("webhookTriggerSecretKeyData", SecretVersionArgs.builder()
.secret(webhookTriggerSecretKey.id())
.secretData("secretkeygoeshere")
.build());
final var project = OrganizationsFunctions.getProject();
final var secretAccessor = OrganizationsFunctions.getIAMPolicy(GetIAMPolicyArgs.builder()
.bindings(GetIAMPolicyBindingArgs.builder()
.role("roles/secretmanager.secretAccessor")
.members(String.format("serviceAccount:service-%s@gcp-sa-cloudbuild.iam.gserviceaccount.com", project.applyValue(getProjectResult -> getProjectResult.number())))
.build())
.build());
var policy = new SecretIamPolicy("policy", SecretIamPolicyArgs.builder()
.project(webhookTriggerSecretKey.project())
.secretId(webhookTriggerSecretKey.secretId())
.policyData(secretAccessor.applyValue(getIAMPolicyResult -> getIAMPolicyResult.policyData()))
.build());
var webhook_config_trigger = new Trigger("webhook-config-trigger", TriggerArgs.builder()
.description("acceptance test example webhook build trigger")
.webhookConfig(TriggerWebhookConfigArgs.builder()
.secret(webhookTriggerSecretKeyData.id())
.build())
.sourceToBuild(TriggerSourceToBuildArgs.builder()
.uri("https://hashicorp/terraform-provider-google-beta")
.ref("refs/heads/main")
.repoType("GITHUB")
.build())
.gitFileSource(TriggerGitFileSourceArgs.builder()
.path("cloudbuild.yaml")
.uri("https://hashicorp/terraform-provider-google-beta")
.revision("refs/heads/main")
.repoType("GITHUB")
.build())
.build());
}
}

Cloudbuild Trigger Manual

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerApprovalConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGitFileSourceArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerSourceToBuildArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var manual_trigger = new Trigger("manual-trigger", TriggerArgs.builder()
.approvalConfig(TriggerApprovalConfigArgs.builder()
.approvalRequired(true)
.build())
.gitFileSource(TriggerGitFileSourceArgs.builder()
.path("cloudbuild.yaml")
.repoType("GITHUB")
.revision("refs/heads/main")
.uri("https://hashicorp/terraform-provider-google-beta")
.build())
.sourceToBuild(TriggerSourceToBuildArgs.builder()
.ref("refs/heads/main")
.repoType("GITHUB")
.uri("https://hashicorp/terraform-provider-google-beta")
.build())
.build());
}
}

Cloudbuild Trigger Manual Github Enterprise

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGitFileSourceArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerSourceToBuildArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var manual_ghe_trigger = new Trigger("manual-ghe-trigger", TriggerArgs.builder()
.gitFileSource(TriggerGitFileSourceArgs.builder()
.githubEnterpriseConfig("projects/myProject/locations/global/githubEnterpriseConfigs/configID")
.path("cloudbuild.yaml")
.repoType("GITHUB")
.revision("refs/heads/main")
.uri("https://hashicorp/terraform-provider-google-beta")
.build())
.sourceToBuild(TriggerSourceToBuildArgs.builder()
.githubEnterpriseConfig("projects/myProject/locations/global/githubEnterpriseConfigs/configID")
.ref("refs/heads/main")
.repoType("GITHUB")
.uri("https://hashicorp/terraform-provider-google-beta")
.build())
.build());
}
}

Cloudbuild Trigger Manual Bitbucket Server

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGitFileSourceArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerSourceToBuildArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var manual_bitbucket_trigger = new Trigger("manual-bitbucket-trigger", TriggerArgs.builder()
.gitFileSource(TriggerGitFileSourceArgs.builder()
.bitbucketServerConfig("projects/myProject/locations/global/bitbucketServerConfigs/configID")
.path("cloudbuild.yaml")
.repoType("BITBUCKET_SERVER")
.revision("refs/heads/main")
.uri("https://bbs.com/scm/stag/test-repo.git")
.build())
.sourceToBuild(TriggerSourceToBuildArgs.builder()
.bitbucketServerConfig("projects/myProject/locations/global/bitbucketServerConfigs/configID")
.ref("refs/heads/main")
.repoType("BITBUCKET_SERVER")
.uri("https://bbs.com/scm/stag/test-repo.git")
.build())
.build());
}
}

Cloudbuild Trigger Repo

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuildv2.Connection;
import com.pulumi.gcp.cloudbuildv2.ConnectionArgs;
import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionGithubConfigArgs;
import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionGithubConfigAuthorizerCredentialArgs;
import com.pulumi.gcp.cloudbuildv2.Repository;
import com.pulumi.gcp.cloudbuildv2.RepositoryArgs;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerRepositoryEventConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerRepositoryEventConfigPushArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var my_connection = new Connection("my-connection", ConnectionArgs.builder()
.location("us-central1")
.githubConfig(ConnectionGithubConfigArgs.builder()
.appInstallationId(123123)
.authorizerCredential(ConnectionGithubConfigAuthorizerCredentialArgs.builder()
.oauthTokenSecretVersion("projects/my-project/secrets/github-pat-secret/versions/latest")
.build())
.build())
.build());
var my_repository = new Repository("my-repository", RepositoryArgs.builder()
.parentConnection(my_connection.id())
.remoteUri("https://github.com/myuser/my-repo.git")
.build());
var repo_trigger = new Trigger("repo-trigger", TriggerArgs.builder()
.location("us-central1")
.repositoryEventConfig(TriggerRepositoryEventConfigArgs.builder()
.repository(my_repository.id())
.push(TriggerRepositoryEventConfigPushArgs.builder()
.branch("feature-.*")
.build())
.build())
.filename("cloudbuild.yaml")
.build());
}
}

Cloudbuild Trigger Bitbucket Server Push

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBitbucketServerTriggerConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBitbucketServerTriggerConfigPushArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var bbs_push_trigger = new Trigger("bbs-push-trigger", TriggerArgs.builder()
.bitbucketServerTriggerConfig(TriggerBitbucketServerTriggerConfigArgs.builder()
.bitbucketServerConfigResource("projects/123456789/locations/us-central1/bitbucketServerConfigs/myBitbucketConfig")
.projectKey("STAG")
.push(TriggerBitbucketServerTriggerConfigPushArgs.builder()
.invertRegex(true)
.tag("^0.1.*")
.build())
.repoSlug("bbs-push-trigger")
.build())
.filename("cloudbuild.yaml")
.location("us-central1")
.build());
}
}

Cloudbuild Trigger Bitbucket Server Pull Request

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBitbucketServerTriggerConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBitbucketServerTriggerConfigPullRequestArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var bbs_pull_request_trigger = new Trigger("bbs-pull-request-trigger", TriggerArgs.builder()
.bitbucketServerTriggerConfig(TriggerBitbucketServerTriggerConfigArgs.builder()
.bitbucketServerConfigResource("projects/123456789/locations/us-central1/bitbucketServerConfigs/myBitbucketConfig")
.projectKey("STAG")
.pullRequest(TriggerBitbucketServerTriggerConfigPullRequestArgs.builder()
.branch("^master$")
.commentControl("COMMENTS_ENABLED")
.invertRegex(false)
.build())
.repoSlug("terraform-provider-google")
.build())
.filename("cloudbuild.yaml")
.location("us-central1")
.build());
}
}

Cloudbuild Trigger Github Enterprise

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGithubArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGithubPushArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var ghe_trigger = new Trigger("ghe-trigger", TriggerArgs.builder()
.filename("cloudbuild.yaml")
.github(TriggerGithubArgs.builder()
.enterpriseConfigResourceName("projects/123456789/locations/us-central1/githubEnterpriseConfigs/configID")
.name("terraform-provider-google")
.owner("hashicorp")
.push(TriggerGithubPushArgs.builder()
.branch("^main$")
.build())
.build())
.location("us-central1")
.build());
}
}

Cloudbuild Trigger Allow Failure

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildArtifactsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildArtifactsObjectsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildAvailableSecretsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildOptionsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildSourceArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildSourceStorageSourceArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerTriggerTemplateArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var allow_failure_trigger = new Trigger("allow-failure-trigger", TriggerArgs.builder()
.build(TriggerBuildArgs.builder()
.artifacts(TriggerBuildArtifactsArgs.builder()
.images("gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA")
.objects(TriggerBuildArtifactsObjectsArgs.builder()
.location("gs://bucket/path/to/somewhere/")
.paths("path")
.build())
.build())
.availableSecrets(TriggerBuildAvailableSecretsArgs.builder()
.secretManager(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
.build())
.logsBucket("gs://mybucket/logs")
.options(TriggerBuildOptionsArgs.builder()
.diskSizeGb(100)
.dynamicSubstitutions(true)
.env("ekey = evalue")
.logStreamingOption("STREAM_OFF")
.logging("LEGACY")
.machineType("N1_HIGHCPU_8")
.requestedVerifyOption("VERIFIED")
.secretEnv("secretenv = svalue")
.sourceProvenanceHash("MD5")
.substitutionOption("ALLOW_LOOSE")
.volumes(TriggerBuildOptionsVolumeArgs.builder()
.name("v1")
.path("v1")
.build())
.workerPool("pool")
.build())
.queueTtl("20s")
.secrets(TriggerBuildSecretArgs.builder()
.kmsKeyName("projects/myProject/locations/global/keyRings/keyring-name/cryptoKeys/key-name")
.secretEnv(Map.of("PASSWORD", "ZW5jcnlwdGVkLXBhc3N3b3JkCg=="))
.build())
.source(TriggerBuildSourceArgs.builder()
.storageSource(TriggerBuildSourceStorageSourceArgs.builder()
.bucket("mybucket")
.object("source_code.tar.gz")
.build())
.build())
.steps(TriggerBuildStepArgs.builder()
.allowFailure(true)
.args(
"-c",
"exit 1")
.name("ubuntu")
.build())
.substitutions(Map.ofEntries(
Map.entry("_BAZ", "qux"),
Map.entry("_FOO", "bar")
))
.tags(
"build",
"newFeature")
.build())
.location("global")
.triggerTemplate(TriggerTriggerTemplateArgs.builder()
.branchName("main")
.repoName("my-repo")
.build())
.build());
}
}

Cloudbuild Trigger Allow Exit Codes

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildArtifactsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildArtifactsObjectsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildAvailableSecretsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildOptionsArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildSourceArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildSourceStorageSourceArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerTriggerTemplateArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var allow_exit_codes_trigger = new Trigger("allow-exit-codes-trigger", TriggerArgs.builder()
.build(TriggerBuildArgs.builder()
.artifacts(TriggerBuildArtifactsArgs.builder()
.images("gcr.io/$PROJECT_ID/$REPO_NAME:$COMMIT_SHA")
.objects(TriggerBuildArtifactsObjectsArgs.builder()
.location("gs://bucket/path/to/somewhere/")
.paths("path")
.build())
.build())
.availableSecrets(TriggerBuildAvailableSecretsArgs.builder()
.secretManager(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
.build())
.logsBucket("gs://mybucket/logs")
.options(TriggerBuildOptionsArgs.builder()
.diskSizeGb(100)
.dynamicSubstitutions(true)
.env("ekey = evalue")
.logStreamingOption("STREAM_OFF")
.logging("LEGACY")
.machineType("N1_HIGHCPU_8")
.requestedVerifyOption("VERIFIED")
.secretEnv("secretenv = svalue")
.sourceProvenanceHash("MD5")
.substitutionOption("ALLOW_LOOSE")
.volumes(TriggerBuildOptionsVolumeArgs.builder()
.name("v1")
.path("v1")
.build())
.workerPool("pool")
.build())
.queueTtl("20s")
.secrets(TriggerBuildSecretArgs.builder()
.kmsKeyName("projects/myProject/locations/global/keyRings/keyring-name/cryptoKeys/key-name")
.secretEnv(Map.of("PASSWORD", "ZW5jcnlwdGVkLXBhc3N3b3JkCg=="))
.build())
.source(TriggerBuildSourceArgs.builder()
.storageSource(TriggerBuildSourceStorageSourceArgs.builder()
.bucket("mybucket")
.object("source_code.tar.gz")
.build())
.build())
.steps(TriggerBuildStepArgs.builder()
.allowExitCodes(
1,
3)
.args(
"-c",
"exit 1")
.name("ubuntu")
.build())
.substitutions(Map.ofEntries(
Map.entry("_BAZ", "qux"),
Map.entry("_FOO", "bar")
))
.tags(
"build",
"newFeature")
.build())
.location("global")
.triggerTemplate(TriggerTriggerTemplateArgs.builder()
.branchName("main")
.repoName("my-repo")
.build())
.build());
}
}

Cloudbuild Trigger Pubsub With Repo

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.cloudbuildv2.Connection;
import com.pulumi.gcp.cloudbuildv2.ConnectionArgs;
import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionGithubConfigArgs;
import com.pulumi.gcp.cloudbuildv2.inputs.ConnectionGithubConfigAuthorizerCredentialArgs;
import com.pulumi.gcp.cloudbuildv2.Repository;
import com.pulumi.gcp.cloudbuildv2.RepositoryArgs;
import com.pulumi.gcp.pubsub.Topic;
import com.pulumi.gcp.cloudbuild.Trigger;
import com.pulumi.gcp.cloudbuild.TriggerArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerPubsubConfigArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerSourceToBuildArgs;
import com.pulumi.gcp.cloudbuild.inputs.TriggerGitFileSourceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var my_connection = new Connection("my-connection", ConnectionArgs.builder()
.location("us-central1")
.githubConfig(ConnectionGithubConfigArgs.builder()
.appInstallationId(123123)
.authorizerCredential(ConnectionGithubConfigAuthorizerCredentialArgs.builder()
.oauthTokenSecretVersion("projects/my-project/secrets/github-pat-secret/versions/latest")
.build())
.build())
.build());
var my_repository = new Repository("my-repository", RepositoryArgs.builder()
.parentConnection(my_connection.id())
.remoteUri("https://github.com/myuser/my-repo.git")
.build());
var mytopic = new Topic("mytopic");
var pubsub_with_repo_trigger = new Trigger("pubsub-with-repo-trigger", TriggerArgs.builder()
.location("us-central1")
.pubsubConfig(TriggerPubsubConfigArgs.builder()
.topic(mytopic.id())
.build())
.sourceToBuild(TriggerSourceToBuildArgs.builder()
.repository(my_repository.id())
.ref("refs/heads/main")
.repoType("GITHUB")
.build())
.gitFileSource(TriggerGitFileSourceArgs.builder()
.path("cloudbuild.yaml")
.repository(my_repository.id())
.revision("refs/heads/main")
.repoType("GITHUB")
.build())
.build());
}
}

Import

Trigger can be imported using any of these accepted formats

$ pulumi import gcp:cloudbuild/trigger:Trigger default projects/{{project}}/locations/{{location}}/triggers/{{trigger_id}}
$ pulumi import gcp:cloudbuild/trigger:Trigger default projects/{{project}}/triggers/{{trigger_id}}
$ pulumi import gcp:cloudbuild/trigger:Trigger default {{project}}/{{trigger_id}}
$ pulumi import gcp:cloudbuild/trigger:Trigger default {{trigger_id}}

Constructors

Link copied to clipboard
constructor(approvalConfig: Output<TriggerApprovalConfigArgs>? = null, bitbucketServerTriggerConfig: Output<TriggerBitbucketServerTriggerConfigArgs>? = null, build: Output<TriggerBuildArgs>? = null, description: Output<String>? = null, disabled: Output<Boolean>? = null, filename: Output<String>? = null, filter: Output<String>? = null, gitFileSource: Output<TriggerGitFileSourceArgs>? = null, github: Output<TriggerGithubArgs>? = null, ignoredFiles: Output<List<String>>? = null, includeBuildLogs: Output<String>? = null, includedFiles: Output<List<String>>? = null, location: Output<String>? = null, name: Output<String>? = null, project: Output<String>? = null, pubsubConfig: Output<TriggerPubsubConfigArgs>? = null, repositoryEventConfig: Output<TriggerRepositoryEventConfigArgs>? = null, serviceAccount: Output<String>? = null, sourceToBuild: Output<TriggerSourceToBuildArgs>? = null, substitutions: Output<Map<String, String>>? = null, tags: Output<List<String>>? = null, triggerTemplate: Output<TriggerTriggerTemplateArgs>? = null, webhookConfig: Output<TriggerWebhookConfigArgs>? = null)

Properties

Link copied to clipboard

Configuration for manual approval to start a build invocation of this BuildTrigger. Builds created by this trigger will require approval before they execute. Any user with a Cloud Build Approver role for the project can approve a build. Structure is documented below.

Link copied to clipboard

BitbucketServerTriggerConfig describes the configuration of a trigger that creates a build whenever a Bitbucket Server event is received. Structure is documented below.

Link copied to clipboard
val build: Output<TriggerBuildArgs>? = null

Contents of the build template. Either a filename or build template must be provided. Structure is documented below.

Link copied to clipboard
val description: Output<String>? = null

Human-readable description of the trigger.

Link copied to clipboard
val disabled: Output<Boolean>? = null

Whether the trigger is disabled or not. If true, the trigger will never result in a build.

Link copied to clipboard
val filename: Output<String>? = null

Path, from the source root, to a file whose contents is used for the template. Either a filename or build template must be provided. Set this only when using trigger_template or github. When using Pub/Sub, Webhook or Manual set the file name using git_file_source instead.

Link copied to clipboard
val filter: Output<String>? = null

A Common Expression Language string. Used only with Pub/Sub and Webhook.

Link copied to clipboard

The file source describing the local or remote Build template. Structure is documented below.

Link copied to clipboard
val github: Output<TriggerGithubArgs>? = null

Describes the configuration of a trigger that creates a build whenever a GitHub event is received. One of trigger_template, github, pubsub_config or webhook_config must be provided. Structure is documented below.

Link copied to clipboard
val ignoredFiles: Output<List<String>>? = null

ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match extended with support for **. If ignoredFiles and changed files are both empty, then they are not used to determine whether or not to trigger a build. If ignoredFiles is not empty, then we ignore any files that match any of the ignored_file globs. If the change has no files that are outside of the ignoredFiles globs, then we do not trigger a build.

Link copied to clipboard
val includeBuildLogs: Output<String>? = null

Build logs will be sent back to GitHub as part of the checkrun result. Values can be INCLUDE_BUILD_LOGS_UNSPECIFIED or INCLUDE_BUILD_LOGS_WITH_STATUS Possible values are: INCLUDE_BUILD_LOGS_UNSPECIFIED, INCLUDE_BUILD_LOGS_WITH_STATUS.

Link copied to clipboard
val includedFiles: Output<List<String>>? = null

ignoredFiles and includedFiles are file glob matches using https://golang.org/pkg/path/filepath/#Match extended with support for **. If any of the files altered in the commit pass the ignoredFiles filter and includedFiles is empty, then as far as this filter is concerned, we should trigger the build. If any of the files altered in the commit pass the ignoredFiles filter and includedFiles is not empty, then we make sure that at least one of those files matches a includedFiles glob. If not, then we do not trigger a build.

Link copied to clipboard
val location: Output<String>? = null

The Cloud Build location for the trigger. If not specified, "global" is used.

Link copied to clipboard
val name: Output<String>? = null

Name of the trigger. Must be unique within the project.

Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard

PubsubConfig describes the configuration of a trigger that creates a build whenever a Pub/Sub message is published. One of trigger_template, github, pubsub_config webhook_config or source_to_build must be provided. Structure is documented below.

Link copied to clipboard

The configuration of a trigger that creates a build whenever an event from Repo API is received. Structure is documented below.

Link copied to clipboard
val serviceAccount: Output<String>? = null

The service account used for all user-controlled operations including triggers.patch, triggers.run, builds.create, and builds.cancel. If no service account is set, then the standard Cloud Build service account (PROJECT_NUM@system.gserviceaccount.com) will be used instead. Format: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_ID_OR_EMAIL}

Link copied to clipboard

The repo and ref of the repository from which to build. This field is used only for those triggers that do not respond to SCM events. Triggers that respond to such events build source at whatever commit caused the event. This field is currently only used by Webhook, Pub/Sub, Manual, and Cron triggers. One of trigger_template, github, pubsub_config webhook_config or source_to_build must be provided. Structure is documented below.

Link copied to clipboard
val substitutions: Output<Map<String, String>>? = null

Substitutions data for Build resource.

Link copied to clipboard
val tags: Output<List<String>>? = null

Tags for annotation of a BuildTrigger

Link copied to clipboard

Template describing the types of source changes to trigger a build. Branch and tag names in trigger templates are interpreted as regular expressions. Any branch or tag change that matches that regular expression will trigger a build. One of trigger_template, github, pubsub_config, webhook_config or source_to_build must be provided. Structure is documented below.

Link copied to clipboard

WebhookConfig describes the configuration of a trigger that creates a build whenever a webhook is sent to a trigger's webhook URL. One of trigger_template, github, pubsub_config webhook_config or source_to_build must be provided. Structure is documented below.

Functions

Link copied to clipboard
open override fun toJava(): TriggerArgs