This repository contains Workflows for interacting with Power Platform Environments for handling ALM processes.
The following Power Platforms are used as part of this project.
Name | Description |
---|---|
DEV | Main development environment will all work is performed on the solution |
BUILD | Build environment that is used by GitHub actions for building solution |
HOTFIX | Special hotfix environment to be used for working on hotfixes and keeping dev work isolated from hotfixes |
PROD | Production environment that will host the final solution for production use |
Name | Description |
---|---|
CLIENT_ID | The Client ID from the App Registration for Power Platform |
TENANT_ID | The Tenant ID for the Tenant hosting the Power Platform solution |
ENVIRONMENT_URL | The URL for the Power Platform environment |
BUILD_ENVIRONMENT_URL | The URL for the Power Platform Build environment |
PRODUCTION_ENVIRONMENT_URL | The URL for the Power Platform Production environmnet |
PowerPlatformSPN | The Secret for the Client ID that has been registered for Power Platform. This is stored in secrets on GitHub |
GITHUB_TOKEN |
Export solution from DEV as unmanaged, upload export solution to GitHub artifact store, pack solution as unmanaged and deploy to dev/hotfix
Export unmanaged solution from environmnet , unpack the solution, prepare for check-in, commit and create branch. Once this workflow completes a Pull Request will be needed to merge the new branch into the Main branch.
Inputs: solution_name: The name of the solution to be export from Power Platform Environment. solution_exported_folder
Input Name | Required | Default | Description |
---|---|---|---|
solution_name | Yes | ALMLab | name of the solution to worked on from Power Platform |
solution_exported_folder | Yes | out/exported/ | folder name for staging the exported solution do not change |
solution_folder | Yes | out/solutions/ | staging the unpacked solution folder before check-in do not change |
solution_target_folder | Yes | solutions/ | folder name to be created and checked in do not change |
Steps:
- actions/checkout@v2
- who-am-i action
- export-solution action
- unpack-solultion action
- branch-solution, prepare it, for Pull Request
Trigger action that is initiated when a new release is created in GitHub. This action will then call release-solution-to-prod-with-inputs to handle importing a managed solution from the Main branch into the production Power Platform environment.
This action is called from release-action-call when a new release is created in GitHub. Once a new release create this action will use the Main branch to pack the solution and import into production as a managed solution.
Inputs
Steps: convert-to-managed
- actions/checkout@v2
- Pack solution
- Import solution as unmanaged to build env
- Export solution as managed
- Upload the ready to ship solution to GitHub artifact store release-to-staging
- actions/checkout@v2
- Fetch the ready to ship solution from GitHub artifact store