This repo provides multiple GitHub Actions for the Power Platform; for more general info on GitHub Actions. Each action wraps the existing Power Platform CLI.
Detailed documentation on GitHub actions for Power Platform is available here.
Sample workflows and detailed instructions are available in our GitHub actions lab repo
but if you are already familiar with GitHub actions and Power Platform solutions, simply add below to your existing workflows;
also add the secret MYPASSWORD
to your repository's 'Settings' | 'Secrets'
jobs:
build:
runs-on: windows-latest # alternate runner OS is: ubuntu-latest
steps:
- name: Export Solution
uses: microsoft/powerplatform-actions/export-solution@v0
with:
environment-url: 'https://myenv.crm.dynamics.com'
user-name: '[email protected]'
password-secret: ${{ secrets.MYPASSWORD }}
solution-name: aSolution
solution-output-file: 'aSolution.zip'
working-directory: 'out'
- name: Unpack Solution
uses: microsoft/powerplatform-actions/unpack-solution@v0
with:
solution-file: 'out/aSolution1.zip'
solution-folder: 'out/solutions/solution one'
solution-type: 'Unmanaged'
overwrite-files: true
- name: Publish Solution
uses: microsoft/powerplatform-actions/publish-solution@v0
with:
environment-url: 'https://myenv.crm.dynamics.com'
user-name: '[email protected]'
password-secret: ${{ secrets.MYPASSWORD }}
- name: Prepare solution changes for check-in into source control
uses: microsoft/powerplatform-actions/branch-solution@v0
with:
solution-folder: 'out/solutions/solution one'
solution-target-folder: 'src/solutions/solution1'
token: ${{ secrets.GITHUB_TOKEN }}
This project will welcome community contributions in the near future. For suggestions and ideas, please use the Issues section of this repo.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Windows, macOS or Linux:
- Node.js LTS (currently v12)
- gulp CLI:
npm install -g gulp-cli
- git
- VS Code or your different favorite editor
- recommended VSCode extensions:
- TEMPORARY:
- Create a PAT for the Azure DevOps org
msazure
with scope: package(read) and add it as local environment variable.
[Environment]::SetEnvironmentVariable('AZ_DevOps_Read_PAT', '<yourPAT>', [EnvironmentVariableTarget]::User)
- Create a PAT in GitHub to read packages, and enable SSO for the microsoft organization.
Then add it to your ~/.npmrc file or use the
npm login --scope=@microsoft --registry=https://npm.pkg.github.com
command, as documented here. This will only be needed until the@microsoft/powerplatform-cli-wrapper
repo is made public.
- Create a PAT for the Azure DevOps org
If developing on Linux or macOS, you will also need to install git-lfs
. (It is prepackaged with the Git installer for Windows.)
Follow the instructions here for your environment.
Clone, restore modules, build and run:
git clone https://github.com/microsoft/powerplatform-actions.git
cd powerplatform-actions
npm install
gulp
In a clean working directory, run npm run update-dist
and commit and push only the updates in the ./dist
folder.
If you have updated the Linux PAC package version (especially from a Windows host), double check that the pac
executable has the execute flag set. Run
git ls-tree HEAD dist/pac_linux/tools/pac
and check that the leftmost value should be 100755
. Example output:
100755 blob 00034fe2fe80faca43030481877760674409d739 dist/pac_linux/tools/pac
If the file mode does not match, run
git update-index --chmod=+x dist/pac_linux/tools/pac
prior to commiting the changes.