Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Workflow configuration

Build Workflow:

image-20240329-072533.pngImage Modified

Expand
titleCreateARMTemplate-Inc

<?xml version="1.0" encoding="Unicode"?>
<ns0:WorkFlow xmlns:ns1="http://flexagon.com/flexdeploy/workflow/common" xmlns:ns0="http://flexagon.com/flexdeploy/workflow">
<ns1:Name>CreateARMTemplate-Inc</ns1:Name>
<ns1:Description></ns1:Description>
<ns0:Variables/>
<ns0:Steps>
<ns0:Step>
<ns1:Name>publishArtifacts</ns1:Name>
<ns1:StepId>1</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonAzurePlugin</ns0:PluginName>
<ns0:PluginOperation>publishArtifacts</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_FEED</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FEED_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FD_PACKAGE_NAME + &quot;-&quot; + ARTIFACTS_PACKAGE_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_VERSION</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PACKAGE_VERSION</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_DESCRIPTION</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROJECT_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PROJECT_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_PATH</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FD_TEMP_DIR</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_ADDITIONAL_PARAMS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_ERR</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RESP</ns0:NameInCallee>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>buildPipeline</ns1:Name>
<ns1:StepId>2</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonAzurePlugin</ns0:PluginName>
<ns0:PluginOperation>buildPipeline</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_BUILD_DEFINITION_ID</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text></ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_DEFINITION_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>BUILD_DEFINITION_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_QUEUE_ID</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_COMMIT_ID</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_BRANCH_NAME</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROJECT_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PROJECT_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_VARIABLES_LIST</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>VARIABLES_LIST + &quot;##artifactsPackageName:&quot; + FD_PACKAGE_NAME + &quot;-&quot; + ARTIFACTS_PACKAGE_NAME + &quot;##feedName:&quot; + PROJECT_NAME + &quot;/&quot; + FEED_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FD_PACKAGE_NAME + &quot;-&quot; + PACKAGE_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_ADDITIONAL_PARAMS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_ERR</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RESP</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_BUILD_PIPELINE_WEB_URL</ns0:NameInCallee>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>downloadArtifacts</ns1:Name>
<ns1:StepId>3</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonAzurePlugin</ns0:PluginName>
<ns0:PluginOperation>downloadArtifacts</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>true</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_FEED</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FEED_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FD_PACKAGE_NAME + &quot;-&quot; + PACKAGE_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_VERSION</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PACKAGE_VERSION</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROJECT_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PROJECT_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_PATH</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_ADDITIONAL_PARAMS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_ERR</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RESP</ns0:NameInCallee>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
</ns0:Steps>
</ns0:WorkFlow>

Deploy Workflow:

image-20240329-073217.pngImage Modified

Expand
titleDeploySynapseArtifacts-Inc

<?xml version="1.0" encoding="Unicode"?>
<ns0:WorkFlow xmlns:ns1="http://flexagon.com/flexdeploy/workflow/common" xmlns:ns0="http://flexagon.com/flexdeploy/workflow">
<ns1:Name>DeploySynapseArtifacts-Inc</ns1:Name>
<ns1:Description></ns1:Description>
<ns0:Variables>
<ns0:Variable>
<ns1:Name>ENV_DETAILS</ns1:Name>
<ns1:Type>String</ns1:Type>
<ns0:returnAsOutput>true</ns0:returnAsOutput>
<ns1:isConstant>false</ns1:isConstant>
</ns0:Variable>
<ns0:Variable>
<ns1:Name>RELEASE_ID</ns1:Name>
<ns1:Type>String</ns1:Type>
<ns0:returnAsOutput>true</ns0:returnAsOutput>
<ns1:isConstant>false</ns1:isConstant>
</ns0:Variable>
<ns0:Variable>
<ns1:Name>ENVIRONMENT_ID</ns1:Name>
<ns1:Type>String</ns1:Type>
<ns0:returnAsOutput>true</ns0:returnAsOutput>
<ns1:isConstant>false</ns1:isConstant>
</ns0:Variable>
<ns0:Variable>
<ns1:Name>RELEASE_URL</ns1:Name>
<ns1:Type>String</ns1:Type>
<ns0:returnAsOutput>true</ns0:returnAsOutput>
<ns1:isConstant>false</ns1:isConstant>
</ns0:Variable>
</ns0:Variables>
<ns0:Steps>
<ns0:Step>
<ns1:Name>createRelease</ns1:Name>
<ns1:StepId>1</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonAzurePlugin</ns0:PluginName>
<ns0:PluginOperation>createRelease</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_DEFINITION_ID</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>RELEASE_DEFINITION_ID</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_ARTIFACTS_PAYLOAD</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text></ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROJECT_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PROJECT_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_VARIABLES_LIST</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>&quot;feedName:&quot; + PROJECT_NAME + &quot;/&quot; + FEED_NAME + &quot;##packageName:&quot; + PACKAGE_NAME + &quot;##packageVersion:&quot; + PACKAGE_VERSION</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROPERTIES</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_MANUAL_ENVIRONMENTS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_STATUS_CHECK</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>false</ns0:Text>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RESP</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RELEASE_WEB_URL</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_REL_ENV_STAGE_DETAILS</ns0:NameInCallee>
<ns0:NameInCaller>ENV_DETAILS</ns0:NameInCaller>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RELEASE_ID</ns0:NameInCallee>
<ns0:NameInCaller>RELEASE_ID</ns0:NameInCaller>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>Parse Environment specific Id</ns1:Name>
<ns1:StepId>2</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonXPathPlugin</ns0:PluginName>
<ns0:PluginOperation>parseJson</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDP_SOURCE</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>ENV_DETAILS</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDP_XPATH</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>'$..[?(@.name==\''+FD_ENVIRONMENT_NAME+'\')].id'</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDP_VALUE</ns0:NameInCallee>
<ns0:NameInCaller>ENVIRONMENT_ID</ns0:NameInCaller>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>updateReleaseEnvStatus</ns1:Name>
<ns1:StepId>3</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonAzurePlugin</ns0:PluginName>
<ns0:PluginOperation>updateReleaseEnvStatus</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_ID</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Integer</ns1:Type>
<ns0:Value>
<ns0:Expression>RELEASE_ID</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_ENVIRONMENT_ID</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Integer</ns1:Type>
<ns0:Value>
<ns0:Expression>ENVIRONMENT_ID.substring(1,ENVIRONMENT_ID.length()-1)</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROJECT_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PROJECT_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_ENVIRONMENT_STATUS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>InProgress</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_VARIABLES_LIST</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>ENVIRONMENT_VARIABLES_LIST</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_COMMENT</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_SCHEDULED_DEPLOYMENT_TIME</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_REL_ENV_STATUS_CHECK</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>true</ns0:Text>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RESP</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_REL_ENV_WEB_URL</ns0:NameInCallee>
<ns0:NameInCaller>RELEASE_URL</ns0:NameInCaller>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
</ns0:Steps>
</ns0:WorkFlow>

...

Once it is created the Source Control needs to be configured, so that we can discover the files from the respective repository.

image-20240329-065458.pngImage Modified

For example, this is how the repository looks like where we have all the artifacts uploaded from Synapse Dev Workspace.

...

Say we have two pipelines in repository but want to deploy only one to the target workspace, in that case we can create a package and add the pipeline file in it.

image-20240329-072318.pngImage Modified

Click on the Configuration tab, select General and update the Build and Deploy workflows along with respective Target groups.

...

Workflow configuration for creating ARM template and upload to Repository

Build Workflow:

image-20240329-075643.pngImage Modified

Info

Note: For uploading the ARM template to repository, we have created another DevOps repository as az-synapse-arm and configured it in FlexDeploy-Integration with the code SYNAPSEARM.

If you have some other repository present in GITHUB or Azure DevOps anywhere and want to use that, then please create accordingly and use the correct Instance Code in the workflow pasted below.

image-20240329-080026.pngImage Modified

Expand
titleExportAndUploadtoGIT

<?xml version="1.0" encoding="Unicode"?>
<ns0:WorkFlow xmlns:ns1="http://flexagon.com/flexdeploy/workflow/common" xmlns:ns0="http://flexagon.com/flexdeploy/workflow">
<ns1:Name>ExportAndUploadtoGIT</ns1:Name>
<ns1:Description></ns1:Description>
<ns0:Steps>
<ns0:Step>
<ns1:Name>clone</ns1:Name>
<ns1:StepId>1</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
<ns0:PluginOperation>clone</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>SYNAPSEARM</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>ARMTemplates</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_BRANCH</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>flexdeploy</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_TREELESS_CLONE</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>false</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_DEPTH</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Integer</ns1:Type>
<ns0:Text></ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_SPARSE_CHECKOUT_FOLDERS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs/>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>InvokeWorkflow</ns1:Name>
<ns1:StepId>2</ns1:StepId>
<ns0:InvokeWorkflow>
<ns0:WorkflowName>CreateARMTemplate-Inc</ns0:WorkflowName>
<ns0:OverrideVersion>1.1</ns0:OverrideVersion>
<ns0:InputValues/>
<ns0:OutputValues/>
</ns0:InvokeWorkflow>
</ns0:Step>
<ns0:Step>
<ns1:Name>copy</ns1:Name>
<ns1:StepId>3</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonFilePlugin</ns0:PluginName>
<ns0:PluginOperation>copy</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDFILE_INP_FILE_FILTER</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>Template*.json</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDFILE_INP_FILE_FILTER_EXCLUDED</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDFILE_INP_SOURCE_PATH</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FD_ARTIFACTS_DIR</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDFILE_INP_TARGET_PATH</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FD_TEMP_DIR+&quot;/ARMTemplates/&quot;+FD_PACKAGE_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDFILE_INP_CLEAN_DIRECTORY</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>true</ns0:Text>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs/>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>add</ns1:Name>
<ns1:StepId>4</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
<ns0:PluginOperation>add</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>SYNAPSEARM</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>ARMTemplates</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_FILELIST</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>.</ns0:Text>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs/>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>commit</ns1:Name>
<ns1:StepId>5</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
<ns0:PluginOperation>commit</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>SYNAPSEARM</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>ARMTemplates</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_NAME</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_EMAIL</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_REVISION_MESSAGE</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>&quot;ARM Template updated: &quot;+ FD_PROJECT_VERSION</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs/>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>push</ns1:Name>
<ns1:StepId>6</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
<ns0:PluginOperation>push</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>SYNAPSEARM</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>ARMTemplates</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_BRANCH</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>flexdeploy</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDGIT_INP_FOLLOW_TAGS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>false</ns0:Text>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs/>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
</ns0:Steps>
</ns0:WorkFlow>

...

Once it is created the Source Control needs to be configured, so that we can discover the files from the respective repository.

image-20240329-065458.pngImage Modified

For example, this is how the repository looks like where we have all the artifacts uploaded from Synapse Dev Workspace.

...

Expand
titleSynapseBuild

<?xml version="1.0" encoding="Unicode"?>
<ns0:WorkFlow xmlns:ns1="http://flexagon.com/flexdeploy/workflow/common" xmlns:ns0="http://flexagon.com/flexdeploy/workflow">
<ns1:Name>SynapseBuild</ns1:Name>
<ns1:Description></ns1:Description>
<ns0:Steps>
<ns0:Step>
<ns1:Name>saveArtifacts</ns1:Name>
<ns1:StepId>1</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonFilePlugin</ns0:PluginName>
<ns0:PluginOperation>saveArtifacts</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>true</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDFILE_INP_SOURCE_SUBFOLDER</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDFILE_INP_FILE_FILTER</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDFILE_INP_FILE_FILTER_EXCLUDED</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDFILE_INP_TARGET_SUBFOLDER</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs/>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
</ns0:Steps>
</ns0:WorkFlow>

Deploy Workflow:

image-20240329-084310.pngImage Modified

Expand
titleSynapseARMDeploy

<?xml version="1.0" encoding="Unicode"?>
<ns0:WorkFlow xmlns:ns1="http://flexagon.com/flexdeploy/workflow/common" xmlns:ns0="http://flexagon.com/flexdeploy/workflow">
<ns1:Name>SynapseARMDeploy</ns1:Name>
<ns1:Description></ns1:Description>
<ns0:Variables>
<ns0:Variable>
<ns1:Name>ENV_DETAILS</ns1:Name>
<ns1:Type>String</ns1:Type>
<ns0:returnAsOutput>true</ns0:returnAsOutput>
<ns1:isConstant>false</ns1:isConstant>
</ns0:Variable>
<ns0:Variable>
<ns1:Name>RELEASE_ID</ns1:Name>
<ns1:Type>String</ns1:Type>
<ns0:returnAsOutput>true</ns0:returnAsOutput>
<ns1:isConstant>false</ns1:isConstant>
</ns0:Variable>
<ns0:Variable>
<ns1:Name>ENVIRONMENT_ID</ns1:Name>
<ns1:Type>String</ns1:Type>
<ns0:returnAsOutput>true</ns0:returnAsOutput>
<ns1:isConstant>false</ns1:isConstant>
</ns0:Variable>
<ns0:Variable>
<ns1:Name>RELEASE_URL</ns1:Name>
<ns1:Type>String</ns1:Type>
<ns0:returnAsOutput>true</ns0:returnAsOutput>
<ns1:isConstant>false</ns1:isConstant>
</ns0:Variable>
<ns0:Variable>
<ns1:Name>FINALVERSION</ns1:Name>
<ns1:Type>String</ns1:Type>
<ns0:returnAsOutput>true</ns0:returnAsOutput>
<ns1:isConstant>false</ns1:isConstant>
</ns0:Variable>
</ns0:Variables>
<ns0:Steps>
<ns0:Step>
<ns1:Name>execute</ns1:Name>
<ns1:StepId>1</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonShellPlugin</ns0:PluginName>
<ns0:PluginOperation>execute</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>true</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDSHELL_INP_CODE_SNIPPET</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>mkdir -p $FD_TEMP_DIR/ARMTEMPLATES
find $FD_ARTIFACTS_DIR -type f -name &quot;Template*.json&quot; -exec cp {} $FD_TEMP_DIR/ARMTEMPLATES \;</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDSHELL_INP_STOP_ON_ERROR</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>false</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDSHELL_INP_DISABLE_ECHO</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>false</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDSHELL_INP_RESTRICT_ENVIRONMENT</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDSHELL_INP_NO_SECURE_VARIABLES</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>false</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDSHELL_INP_LOCK</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs/>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>Assign</ns1:Name>
<ns1:StepId>2</ns1:StepId>
<ns0:Assign>
<ns0:From>
<ns0:Expression>PACKAGE_VERSION.substring(0,PACKAGE_VERSION.lastIndexOf(&quot;.&quot;) +1) + FD_WORKFLOW_EXECUTION_ID</ns0:Expression>
</ns0:From>
<ns0:To>FINALVERSION</ns0:To>
</ns0:Assign>
</ns0:Step>
<ns0:Step>
<ns1:Name>publishArtifacts</ns1:Name>
<ns1:StepId>3</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonAzurePlugin</ns0:PluginName>
<ns0:PluginOperation>publishArtifacts</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>true</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_FEED</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FEED_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FD_PACKAGE_NAME + &quot;-&quot; + PACKAGE_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_VERSION</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FINALVERSION</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_DESCRIPTION</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROJECT_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PROJECT_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PACKAGE_PATH</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>FD_TEMP_DIR + &quot;/ARMTEMPLATES&quot;</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_ADDITIONAL_PARAMS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_ERR</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RESP</ns0:NameInCallee>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>createRelease</ns1:Name>
<ns1:StepId>4</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonAzurePlugin</ns0:PluginName>
<ns0:PluginOperation>createRelease</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_DEFINITION_ID</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>RELEASE_DEFINITION_ID</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_ARTIFACTS_PAYLOAD</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROJECT_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PROJECT_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_VARIABLES_LIST</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>&quot;feedName:&quot; + PROJECT_NAME + &quot;/&quot; + FEED_NAME + &quot;##packageName:&quot; + FD_PACKAGE_NAME + &quot;-&quot; + PACKAGE_NAME + &quot;##packageVersion:&quot; + FINALVERSION</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROPERTIES</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_MANUAL_ENVIRONMENTS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_STATUS_CHECK</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>false</ns0:Text>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RESP</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RELEASE_WEB_URL</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_REL_ENV_STAGE_DETAILS</ns0:NameInCallee>
<ns0:NameInCaller>ENV_DETAILS</ns0:NameInCaller>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RELEASE_ID</ns0:NameInCallee>
<ns0:NameInCaller>RELEASE_ID</ns0:NameInCaller>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>parseJson</ns1:Name>
<ns1:StepId>5</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonXPathPlugin</ns0:PluginName>
<ns0:PluginOperation>parseJson</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDP_SOURCE</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>ENV_DETAILS</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDP_XPATH</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>'$..[?(@.name==\''+FD_ENVIRONMENT_NAME+'\')].id'</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDP_VALUE</ns0:NameInCallee>
<ns0:NameInCaller>ENVIRONMENT_ID</ns0:NameInCaller>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
<ns0:Step>
<ns1:Name>updateReleaseEnvStatus</ns1:Name>
<ns1:StepId>6</ns1:StepId>
<ns0:InvokePlugin>
<ns0:PluginName>FlexagonAzurePlugin</ns0:PluginName>
<ns0:PluginOperation>updateReleaseEnvStatus</ns0:PluginOperation>
<ns0:EndpointInstanceOverrideExpression>false</ns0:EndpointInstanceOverrideExpression>
<ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
<ns0:consumesArtifacts>false</ns0:consumesArtifacts>
<ns0:producesArtifacts>false</ns0:producesArtifacts>
<ns0:EndpointSelection>
<ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
</ns0:EndpointSelection>
<ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
<ns0:PluginInputs>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_ID</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Integer</ns1:Type>
<ns0:Value>
<ns0:Expression>RELEASE_ID</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_ENVIRONMENT_ID</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Integer</ns1:Type>
<ns0:Value>
<ns0:Expression>ENVIRONMENT_ID.substring(1,ENVIRONMENT_ID.length()-1)</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_PROJECT_NAME</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>PROJECT_NAME</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_ENVIRONMENT_STATUS</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Text>InProgress</ns0:Text>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_VARIABLES_LIST</ns0:Name>
<ns0:ValueType>Expression</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
<ns0:Value>
<ns0:Expression>ENVIRONMENT_VARIABLES_LIST</ns0:Expression>
</ns0:Value>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_RELEASE_COMMENT</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_SCHEDULED_DEPLOYMENT_TIME</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>String</ns1:Type>
</ns0:PluginInput>
<ns0:PluginInput>
<ns0:Name>FDAZ_DEVOPS_INP_REL_ENV_STATUS_CHECK</ns0:Name>
<ns0:ValueType>Text</ns0:ValueType>
<ns0:Encrypted>false</ns0:Encrypted>
<ns1:Type>Boolean</ns1:Type>
<ns0:Text>true</ns0:Text>
</ns0:PluginInput>
</ns0:PluginInputs>
<ns0:UserInputs/>
<ns0:PluginOutputs>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_RESP</ns0:NameInCallee>
</ns0:OutputValue>
<ns0:OutputValue>
<ns0:NameInCallee>FDAZ_DEVOPS_OUT_REL_ENV_WEB_URL</ns0:NameInCallee>
<ns0:NameInCaller>RELEASE_URL</ns0:NameInCaller>
</ns0:OutputValue>
</ns0:PluginOutputs>
<ns0:UserOutputs/>
</ns0:InvokePlugin>
</ns0:Step>
</ns0:Steps>
</ns0:WorkFlow>

...

For our use-case a specific parameter as below is created in the Linked Service:

image-20240329-085232.pngImage Modified

Our objective is that when this linked service gets deployed to target cicd-demo-uat workspace, the value would get replaced with “UAT”.

...

Say the linked service we are using is having the connection params in the source workspace as the following:

...

image-20240329-094447.pngImage Modified

The parameter file in ARM template folder looks like:

...

To verify, clicked on the Artifacts tab and verified the ARM template.

image-20240329-095203.pngImage Modified

Click on Deploy for the same

...

Post deployment if we verify the Linked Service in UAT workspace, we see the updated values in there:

image-20240329-095255.pngImage Modified