Forum Discussion
444456464
Nov 26, 2024Copper Contributor
Pipeline CI/CD Azure DevOps
Hello, I am trying to create a deployment pipeline with YAML on Azure DevOps. I would like to export my power apps solution from my development environment to my test environment. But the problem is...
Kidd_Ip
Nov 27, 2024MVP
How about this?
trigger:
- main
pool:
vmImage: 'windows-latest'
variables:
SolutionName: "SOL"
DevEnvironmentUrl: "orgXXXXXXX.crmXX.dynamics.com"
RecipeEnvironmentUrl: "org0000000.crmXX.dynamics.com"
steps:
# Step 1: Install PAC
- script: |
echo "Installing PowerApps CLI (PAC)..."
npm install -g pac-cli
displayName: "Install PAC"
# Step 2: Verify PAC Installation
- script: |
pac version
displayName: "Verify PAC Installation"
# Step 3: Check Output Directory Before Export
- script: |
echo "Checking output directory before export:"
if not exist "$(Build.ArtifactStagingDirectory)\Solution" (
echo "Directory does not exist. Creating directory."
mkdir "$(Build.ArtifactStagingDirectory)\Solution"
) else (
echo "Directory already exists."
)
displayName: "Check or Create Output Directory"
# Step 4: Export Solution from Development Environment
- script: |
pac auth create --url $(DevEnvironmentUrl) --name DevEnvironment
pac solution export --name $(SolutionName) --output-folder "$(Build.ArtifactStagingDirectory)/Solution" --managed
if %ERRORLEVEL% neq 0 exit /b %ERRORLEVEL%
echo "Export completed. Check if the .zip file was created."
displayName: "Export Solution from Development Environment"
# Step 5: Check Exported Files
- script: |
echo "Contents of the output directory after export:"
dir "$(Build.ArtifactStagingDirectory)/Solution"
displayName: "Check Exported Files"
# Step 6: Copy Exported Files
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.ArtifactStagingDirectory)/Solution'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/Solution'
displayName: "Copy Exported Files"
# Step 7: Publish Solution Artifacts
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/Solution'
ArtifactName: 'SolutionExported'
displayName: "Publish Solution Artifacts"
# Step 8: Import Solution to Test Environment
- script: |
pac auth create --url $(RecipeEnvironmentUrl) --name RecipeEnvironment
pac solution import --path "$(Build.ArtifactStagingDirectory)/Solution/$(SolutionName).zip"
displayName: "Import Solution to Test Environment"