Workflow
Resource representation of a workflow Uses Azure REST API version 2022-10-11-preview. In version 1.x of the Azure Native provider, it used API version 2022-04-01-preview. Other available API versions: 2023-08-01, 2024-05-01-preview, 2024-08-01-preview, 2025-03-01-preview.
Example Usage
Create Workflow
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var workflow = new AzureNative.DevHub.Workflow("workflow", new()
{
Acr = new AzureNative.DevHub.Inputs.ACRArgs
{
AcrRegistryName = "registry1",
AcrRepositoryName = "repo1",
AcrResourceGroup = "resourceGroup1",
AcrSubscriptionId = "subscriptionId1",
},
AksResourceId = "/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1",
BranchName = "branch1",
DeploymentProperties = new AzureNative.DevHub.Inputs.DeploymentPropertiesArgs
{
KubeManifestLocations = new[]
{
"/src/manifests/",
},
ManifestType = AzureNative.DevHub.ManifestType.Kube,
Overrides =
{
{ "key1", "value1" },
},
},
DockerBuildContext = "repo1/src/",
Dockerfile = "repo1/images/Dockerfile",
Location = "location1",
Namespace = "namespace1",
OidcCredentials = new AzureNative.DevHub.Inputs.GitHubWorkflowProfileOidcCredentialsArgs
{
AzureClientId = "12345678-3456-7890-5678-012345678901",
AzureTenantId = "66666666-3456-7890-5678-012345678901",
},
RepositoryName = "repo1",
RepositoryOwner = "owner1",
ResourceGroupName = "resourceGroup1",
Tags =
{
{ "appname", "testApp" },
},
WorkflowName = "workflow1",
});
});
package main
import (
devhub "github.com/pulumi/pulumi-azure-native-sdk/devhub/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := devhub.NewWorkflow(ctx, "workflow", &devhub.WorkflowArgs{
Acr: &devhub.ACRArgs{
AcrRegistryName: pulumi.String("registry1"),
AcrRepositoryName: pulumi.String("repo1"),
AcrResourceGroup: pulumi.String("resourceGroup1"),
AcrSubscriptionId: pulumi.String("subscriptionId1"),
},
AksResourceId: pulumi.String("/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1"),
BranchName: pulumi.String("branch1"),
DeploymentProperties: &devhub.DeploymentPropertiesArgs{
KubeManifestLocations: pulumi.StringArray{
pulumi.String("/src/manifests/"),
},
ManifestType: pulumi.String(devhub.ManifestTypeKube),
Overrides: pulumi.StringMap{
"key1": pulumi.String("value1"),
},
},
DockerBuildContext: pulumi.String("repo1/src/"),
Dockerfile: pulumi.String("repo1/images/Dockerfile"),
Location: pulumi.String("location1"),
Namespace: pulumi.String("namespace1"),
OidcCredentials: &devhub.GitHubWorkflowProfileOidcCredentialsArgs{
AzureClientId: pulumi.String("12345678-3456-7890-5678-012345678901"),
AzureTenantId: pulumi.String("66666666-3456-7890-5678-012345678901"),
},
RepositoryName: pulumi.String("repo1"),
RepositoryOwner: pulumi.String("owner1"),
ResourceGroupName: pulumi.String("resourceGroup1"),
Tags: pulumi.StringMap{
"appname": pulumi.String("testApp"),
},
WorkflowName: pulumi.String("workflow1"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.devhub.Workflow;
import com.pulumi.azurenative.devhub.WorkflowArgs;
import com.pulumi.azurenative.devhub.inputs.ACRArgs;
import com.pulumi.azurenative.devhub.inputs.DeploymentPropertiesArgs;
import com.pulumi.azurenative.devhub.inputs.GitHubWorkflowProfileOidcCredentialsArgs;
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 workflow = new Workflow("workflow", WorkflowArgs.builder()
.acr(ACRArgs.builder()
.acrRegistryName("registry1")
.acrRepositoryName("repo1")
.acrResourceGroup("resourceGroup1")
.acrSubscriptionId("subscriptionId1")
.build())
.aksResourceId("/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1")
.branchName("branch1")
.deploymentProperties(DeploymentPropertiesArgs.builder()
.kubeManifestLocations("/src/manifests/")
.manifestType("kube")
.overrides(Map.of("key1", "value1"))
.build())
.dockerBuildContext("repo1/src/")
.dockerfile("repo1/images/Dockerfile")
.location("location1")
.namespace("namespace1")
.oidcCredentials(GitHubWorkflowProfileOidcCredentialsArgs.builder()
.azureClientId("12345678-3456-7890-5678-012345678901")
.azureTenantId("66666666-3456-7890-5678-012345678901")
.build())
.repositoryName("repo1")
.repositoryOwner("owner1")
.resourceGroupName("resourceGroup1")
.tags(Map.of("appname", "testApp"))
.workflowName("workflow1")
.build());
}
}
Create Workflow With Artifact Generation
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var workflow = new AzureNative.DevHub.Workflow("workflow", new()
{
Acr = new AzureNative.DevHub.Inputs.ACRArgs
{
AcrRegistryName = "registry1",
AcrRepositoryName = "repo1",
AcrResourceGroup = "resourceGroup1",
AcrSubscriptionId = "subscriptionId1",
},
AksResourceId = "/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1",
AppName = "my-app",
BranchName = "branch1",
DeploymentProperties = new AzureNative.DevHub.Inputs.DeploymentPropertiesArgs
{
KubeManifestLocations = new[]
{
"/src/manifests/",
},
ManifestType = AzureNative.DevHub.ManifestType.Kube,
Overrides =
{
{ "key1", "value1" },
},
},
DockerBuildContext = "repo1/src/",
Dockerfile = "repo1/images/Dockerfile",
DockerfileGenerationMode = AzureNative.DevHub.DockerfileGenerationMode.Enabled,
DockerfileOutputDirectory = "./",
GenerationLanguage = AzureNative.DevHub.GenerationLanguage.Javascript,
ImageName = "myimage",
ImageTag = "latest",
LanguageVersion = "14",
Location = "location1",
ManifestGenerationMode = AzureNative.DevHub.ManifestGenerationMode.Enabled,
ManifestOutputDirectory = "./",
ManifestType = AzureNative.DevHub.GenerationManifestType.Kube,
OidcCredentials = new AzureNative.DevHub.Inputs.GitHubWorkflowProfileOidcCredentialsArgs
{
AzureClientId = "12345678-3456-7890-5678-012345678901",
AzureTenantId = "66666666-3456-7890-5678-012345678901",
},
Port = "80",
RepositoryName = "repo1",
RepositoryOwner = "owner1",
ResourceGroupName = "resourceGroup1",
Tags =
{
{ "appname", "testApp" },
},
WorkflowName = "workflow1",
});
});
package main
import (
devhub "github.com/pulumi/pulumi-azure-native-sdk/devhub/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := devhub.NewWorkflow(ctx, "workflow", &devhub.WorkflowArgs{
Acr: &devhub.ACRArgs{
AcrRegistryName: pulumi.String("registry1"),
AcrRepositoryName: pulumi.String("repo1"),
AcrResourceGroup: pulumi.String("resourceGroup1"),
AcrSubscriptionId: pulumi.String("subscriptionId1"),
},
AksResourceId: pulumi.String("/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1"),
AppName: pulumi.String("my-app"),
BranchName: pulumi.String("branch1"),
DeploymentProperties: &devhub.DeploymentPropertiesArgs{
KubeManifestLocations: pulumi.StringArray{
pulumi.String("/src/manifests/"),
},
ManifestType: pulumi.String(devhub.ManifestTypeKube),
Overrides: pulumi.StringMap{
"key1": pulumi.String("value1"),
},
},
DockerBuildContext: pulumi.String("repo1/src/"),
Dockerfile: pulumi.String("repo1/images/Dockerfile"),
DockerfileGenerationMode: pulumi.String(devhub.DockerfileGenerationModeEnabled),
DockerfileOutputDirectory: pulumi.String("./"),
GenerationLanguage: pulumi.String(devhub.GenerationLanguageJavascript),
ImageName: pulumi.String("myimage"),
ImageTag: pulumi.String("latest"),
LanguageVersion: pulumi.String("14"),
Location: pulumi.String("location1"),
ManifestGenerationMode: pulumi.String(devhub.ManifestGenerationModeEnabled),
ManifestOutputDirectory: pulumi.String("./"),
ManifestType: pulumi.String(devhub.GenerationManifestTypeKube),
OidcCredentials: &devhub.GitHubWorkflowProfileOidcCredentialsArgs{
AzureClientId: pulumi.String("12345678-3456-7890-5678-012345678901"),
AzureTenantId: pulumi.String("66666666-3456-7890-5678-012345678901"),
},
Port: pulumi.String("80"),
RepositoryName: pulumi.String("repo1"),
RepositoryOwner: pulumi.String("owner1"),
ResourceGroupName: pulumi.String("resourceGroup1"),
Tags: pulumi.StringMap{
"appname": pulumi.String("testApp"),
},
WorkflowName: pulumi.String("workflow1"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.devhub.Workflow;
import com.pulumi.azurenative.devhub.WorkflowArgs;
import com.pulumi.azurenative.devhub.inputs.ACRArgs;
import com.pulumi.azurenative.devhub.inputs.DeploymentPropertiesArgs;
import com.pulumi.azurenative.devhub.inputs.GitHubWorkflowProfileOidcCredentialsArgs;
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 workflow = new Workflow("workflow", WorkflowArgs.builder()
.acr(ACRArgs.builder()
.acrRegistryName("registry1")
.acrRepositoryName("repo1")
.acrResourceGroup("resourceGroup1")
.acrSubscriptionId("subscriptionId1")
.build())
.aksResourceId("/subscriptions/subscriptionId1/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1")
.appName("my-app")
.branchName("branch1")
.deploymentProperties(DeploymentPropertiesArgs.builder()
.kubeManifestLocations("/src/manifests/")
.manifestType("kube")
.overrides(Map.of("key1", "value1"))
.build())
.dockerBuildContext("repo1/src/")
.dockerfile("repo1/images/Dockerfile")
.dockerfileGenerationMode("enabled")
.dockerfileOutputDirectory("./")
.generationLanguage("javascript")
.imageName("myimage")
.imageTag("latest")
.languageVersion("14")
.location("location1")
.manifestGenerationMode("enabled")
.manifestOutputDirectory("./")
.manifestType("kube")
.oidcCredentials(GitHubWorkflowProfileOidcCredentialsArgs.builder()
.azureClientId("12345678-3456-7890-5678-012345678901")
.azureTenantId("66666666-3456-7890-5678-012345678901")
.build())
.port("80")
.repositoryName("repo1")
.repositoryOwner("owner1")
.resourceGroupName("resourceGroup1")
.tags(Map.of("appname", "testApp"))
.workflowName("workflow1")
.build());
}
}
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:devhub:Workflow workflow1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/workflows/{workflowName}
Properties
Information on the azure container registry
The Azure Kubernetes Cluster Resource the application will be deployed to.
Determines the authorization status of requests.
Repository Branch Name
The version of the language image used for building the code in the generated dockerfile.
Path to Dockerfile Build Context within the repository.
Path to the Dockerfile within the repository.
The mode of generation to be used for generating Dockerfiles.
The directory to output the generated Dockerfile to.
The programming language used.
The version of the language image used for execution in the generated dockerfile.
The mode of generation to be used for generating Manifest.
The directory to output the generated manifests to.
Determines the type of manifests to be generated.
The fields needed for OIDC with GitHub.
The number associated with the submitted pull request.
Repository Name
Repository Owner
Azure Resource Manager metadata containing createdBy and modifiedBy information.