microsoft / powerplatform-actions

Power Platform GitHub Actions automate common build and deployment tasks related to Power Platform. This includes synchronization of solution metadata (a.k.a. solutions) between development environments and source control, generating build artifacts, deploying to downstream environments, provisioning/de-provisioning of environments, and the ability to perform static analysis checks against your solution using the PowerApps checker service.
MIT License
221 stars 68 forks source link

Solution import with Canvas App fails with error 'CanvasApp import: FAILURE: No file with that name found' #503

Closed parvezghumra closed 10 months ago

parvezghumra commented 11 months ago

We're using the Power Platform Github Actions for our ALM processes, which I understand are wrapper around the PAC CLI.

The 'import-solution' action is failing currently with the following error:

The reason given was: CanvasApp import: FAILURE: No file with that name found Microsoft PowerPlatform CLI Version: 1.28.3+g4ba7dfd

The command which fails via Github Actions is:

Calling pac cli inputs: solution import --path D:\a\....solution_managed.zip --async true --force-overwrite true --publish-changes false --skip-dependency-check false --convert-to-managed false --max-async-wait-time 60 --activate-plugins true --skip-lower-version false --import-as-holding true --settings-file .....\deploymentsettings.json

Our commit process involves invoking the following commands via Github Actions (all of which succeed and do not unpack Canvas Apps)

Calling pac cli inputs: solution export --name solution --path D:....\solution.zip --overwrite true --managed false --async true --max-async-wait-time 60

Calling pac cli inputs: solution export --name solution --path D:\.....\solution_managed.zip --overwrite true --managed true --async true --max-async-wait-time 60

Calling pac cli inputs: solution unpack --zipFile D:\....\solution.zip --folder D:.....\solution --packageType Both --errorlevel Info --singleComponent None --useLcid false --useUnmanagedFileForMissingManaged false --disablePluginRemap false --allowDelete true --allowWrite true --clobber true

Calling pac cli inputs: solution unpack --zipFile D:\.....\solution.zip --folder D:\.....\solution --packageType Both --errorlevel Info --singleComponent None --useLcid false --useUnmanagedFileForMissingManaged false --disablePluginRemap false --allowDelete true --allowWrite true --clobber true

Our build process involves invoking the following commands via Github Actions (all of which succeed and do not repack Canvas Apps)

Calling pac cli inputs: solution pack --zipFile /home/runner/work/....../solution.zip --folder /home/runner/work/...../solution --packageType Both --errorlevel Info --singleComponent None --useLcid false --useUnmanagedFileForMissingManaged false --disablePluginRemap false

All of this setup was working fine until yesterday

Looking at this response on a similar issue on the Community forum, it looks like someone resolved this by using version 2 of the corresponding Azure DevOps Power Platform Build Tools. I've verified that I'm using the latest available version of the corresponding Github Action but this hasn't resolved the issue.

Originally posted here but reposting in this repository as I'm using Github Actions

LeonardSchwenk commented 11 months ago

Same here !

Neither local pac cli is work or github action

I tried to zip the unpacked code locally via pac cli pac solution pack --zipfile solution_unmanged.zip --folder solution

Microsoft PowerPlatform CLI Version: 1.29.11+g9e2b163

Error: Cannot find required file AdditionalUris0_identity.json

Same meta.xml file as mentioned in the community forum.

  <AdditionalUris>
    <AdditionalUri>/CanvasApps/solution_AdditionalUris0_identity.json</AdditionalUri>
  </AdditionalUris>

workaround

Manually remove:

    <AdditionalUris>
    <AdditionalUri>solution_AdditionalUris0_identity.json</AdditionalUri>
  </AdditionalUris>

pac solution and run it
pac solution pack --zipfile solution_unmanged.zip --folder solution

snizar007 commented 10 months ago

I have been able to reproduce this issue and a bug has been filed for the engineering team.

gavenkat78 commented 10 months ago

can you try forcing the action to use 1.29.11 version of pac cli and try?

image

parvezghumra commented 10 months ago

Thanks @gavenkat78. I hadn't even realised this was an option. Perhaps I ought to check the action definitions more closely! I'll give this a try now

parvezghumra commented 10 months ago

Thanks @gavenkat78. Just to confirm that your suggestion has resolved the issue for us for now. We are using it as a temporary workaround until a new version of the Github Actions are available from Microsoft with the permanent fix.

snizar007 commented 10 months ago

Thank you @parvezghumra for confirming.

nguyentranenvoyair commented 7 months ago

@snizar007 I'm having the same error:

Solution Importing... Microsoft PowerPlatform CLI Version: 1.25.2+g1c4a1b8 Error: CanvasApp import: FAILURE: No file with that name found CanvasApp import: FAILURE: No file with that name found

But the fix above doesn't work. I put that same "Install Power Platform Tools" action mentioned above as the first step in " convert-to-managed" job, but when I trigger this workflow. I don't even see that action on Github, as it seems the action is being skipped by my workflow and my PAC version stays the same (1.25.2+g1c4a1b8): image

I tried running on ubuntu-latest and using version 1.4.0 for all the powerplatform-actions but nothing worked.

Here's my workflow:

name: release-solution-to-prod-with-inputs
# Reusable workflow
# convert solution to managed (using a build PowerPlatform environment for the conversion)
# upload the solution to the GitHub artifacts and deploy to the PROD environment
on:
  workflow_call:
    inputs: 
      #Do Not change these values
      #Values are set by the caller
      #caller sample: release-action-call.ymnl
      solution_name:
        description: 'The solution name.'
        type: string
        default: deploymenttest       
      solution_shipping_folder:
        description: 'folder name for staging the exported solution *do not change*'        
        type: string
        default: out/ship/
      solution_outbound_folder:
        description: 'staging the unpacked solution folder before check-in *do not change*'
        type: string
        default: out/solutions/
      solution_source_folder: 
       description: 'folder name to be created and checked in *do not change*'
       type: string
       default: solutions/
      solution_release_folder:
       description: 'folder where the released binaries are going to be hosted *do not change*'
       type: string
       default: out/release
      BUILD_ENVIRONMENT_URL:
        description: 'Build environment url.'
        type: string
        required: true      
      PRODUCTION_ENVIRONMENT_URL: 
        description: 'Production environment url.'
        type: string
        required: true
      CLIENT_ID: 
        description: 'The client id'
        type: string
        required: true
      TENANT_ID: 
        description: 'The tenant id'
        type: string
        required: true
    secrets:
      envSecret:
        description: 'The secret value for authentication using SPN'
        required: true

jobs:
  convert-to-managed:
    runs-on: windows-latest
    # you can say runs-on: ubuntu-latest or windows-latest
    env:
      RUNNER_DEBUG: 1

    steps:    
    - name: Install Power Platform Tools
      uses: microsoft/powerplatform-actions/actions-install@v1.4.0
      with:
        pac-version-override: 1.31.6

    - uses: actions/checkout@v2
      with:
        lfs: true

    - name: Pack solution
      uses: microsoft/powerplatform-actions/pack-solution@v1.4.0
      with:
        solution-folder: ${{ inputs.solution_source_folder}}/${{ inputs.solution_name }}
        solution-file: ${{ inputs.solution_outbound_folder}}/${{ inputs.solution_name }}.zip
        solution-type: Unmanaged

    - name: Import solution as unmanaged to build env
      uses: microsoft/powerplatform-actions/import-solution@v1.4.0
      with:
        environment-url: ${{inputs.BUILD_ENVIRONMENT_URL}}
        app-id: ${{inputs.CLIENT_ID}}
        client-secret: ${{ secrets.envSecret }}
        tenant-id: ${{inputs.TENANT_ID}}
        solution-file: ${{ inputs.solution_outbound_folder}}/${{ inputs.solution_name }}.zip
        force-overwrite: true
        publish-changes: true

    - name: Export solution as managed
      uses: microsoft/powerplatform-actions/export-solution@v1.4.0
      with:
        environment-url: ${{inputs.BUILD_ENVIRONMENT_URL}}
        app-id: ${{inputs.CLIENT_ID}}
        client-secret: ${{ secrets.envSecret }} 
        tenant-id: ${{inputs.TENANT_ID}}
        solution-name: ${{ inputs.solution_name }}
        managed: true
        solution-output-file: ${{ inputs.solution_shipping_folder}}/${{ inputs.solution_name }}_managed.zip

    - name: Upload the ready to ship solution to GH artifact store
      uses: actions/upload-artifact@v2
      with:
        name: managedSolutions
        path: ${{ inputs.solution_shipping_folder}}/