Forum Discussion
Pipeline CI/CD Azure DevOps
Please try the below mentioned steps
1. Environment Authentication - Ensure that pac auth create is successfully authenticating with your development environment (DevEnvironmentUrl). Check for authentication-related errors.
2. Solution Name Validation - Verify that the SolutionName (SOL) exists in your PowerApps development environment. An incorrect name will prevent the export.
3. Output Path - Check that the output folder path ($(Build.ArtifactStagingDirectory)/Solution) is correctly resolved. Add a debug step to display the path.
4. Error Handling in Export Command - Ensure the pac solution export command is not silently failing. Add detailed logging to confirm its execution.
5. CLI Installation - Confirm that the pac-cli is correctly installed and functioning by manually running pac version in the pipeline.
trigger:
- main
pool:
vmImage: 'windows-latest'
variables:
SolutionName: "SOL"
DevEnvironmentUrl: "https://orgXXXXXXX.crmXX.dynamics.com"
RecipeEnvironmentUrl: "https://org0000000.crmXX.dynamics.com"
steps:
# Step 1: Install PAC
- script: |
echo "Installing PowerApps CLI (PAC)..."
npm install -g pac-cli
displayName: "Install PAC CLI"
# Step 2: Verify PAC Installation
- script: |
echo "PAC Version:"
pac version
displayName: "Verify PAC Installation"
# Step 3: Ensure Output Directory Exists
- script: |
echo "Ensuring output directory exists..."
mkdir "$(Build.ArtifactStagingDirectory)\Solution"
displayName: "Create Output Directory"
# Step 4: Export Solution from Dev Environment
- script: |
pac auth create --url $(DevEnvironmentUrl) --name DevEnvironment
echo "Authenticating to Dev Environment..."
pac solution export --name $(SolutionName) --output-folder "$(Build.ArtifactStagingDirectory)/Solution" --managed
if %ERRORLEVEL% neq 0 (
echo "Solution export failed!"
exit /b %ERRORLEVEL%
)
echo "Solution export completed."
displayName: "Export Solution from Dev Environment"
# Step 5: Debug Output Directory Content
- script: |
echo "Contents of output directory:"
dir "$(Build.ArtifactStagingDirectory)\Solution"
displayName: "Debug Output Directory"
# 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 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
echo "Authenticating to Test Environment..."
pac solution import --path "$(Build.ArtifactStagingDirectory)/Solution/$(SolutionName).zip"
if %ERRORLEVEL% neq 0 (
echo "Solution import failed!"
exit /b %ERRORLEVEL%
)
echo "Solution import completed."
displayName: "Import Solution to Test Environment"