AL-Go for GitHub
AL-Go for GitHub is a set of GitHub templates and actions, which can be used to setup and maintain professional DevOps processes for your Business Central AL projects.
The goal is that people who have created their GitHub repositories based on the AL-Go templates, can maintain these repositories and stay current just by running a workflow, which updates their repositories. This includes necessary changes to scripts and workflows to cope with new features and functions in Business Central.
The roadmap for AL-Go for GitHub can be found here: https://aka.ms/ALGoRoadmap
The template repositories to use as starting point are:
- https://github.com/microsoft/AL-Go-PTE or https://aka.ms/algopte is the GitHub repository template for Per Tenant Extensions. When creating a Per Tenant Extensions, this is your starting point.
- https://github.com/microsoft/AL-Go-AppSource or https://aka.ms/algoappsource is the GitHub repository template for AppSource apps. When creating an AppSource App, this is your starting point.
AL-Go Workshop
Try out the AL-Go workshop for an in-depth workshop on AL-Go for GitHub functionality or examine the below usage scenarios, which explains how to get started and how to perform the most common tasks.
Usage scenarios
- Create a new per-tenant extension (like AL Go) and start developing in VS Code
- Add a test app to an existing project
- Register a customer sandbox environment for Continuous Deployment using S2S
- Create a release of your application
- Register a customer production environment for Manual Deployment
- Update AL-Go system files
- Use Azure KeyVault for secrets with AL-Go
- Create Online Development Environment from VS Code
- Create Online Development Environment from GitHub
- Set up CI/CD for an existing per tenant extension (BingMaps)
- Set up CI/CD for an existing AppSource App
- Enable KeyVault access for your AppSource App during development and/or tests
- Set up your own GitHub runner to increase build performance
- Introducing a dependency to another GitHub repository
- Enabling Telemetry for AL-Go workflows and actions
- Add a performance test app to an existing project
- Publish your app to AppSource
- Connect your GitHub repository to Power Platform
- How to set up Service Principal for Power Platform
- Try one of the Business Central and Power Platform samples
Migration scenarios
A. Migrate a repository from Azure DevOps to AL-Go for GitHub without history
B. Migrate a repository from Azure DevOps to AL-Go for GitHub with history
[!NOTE] Please refer to this description to learn about the settings file and how you can modify default behaviors.
This project
This project in the main source repository for AL-Go for GitHub. This project is deployed on every release to a branch in the following repositories:
- https://github.com/microsoft/AL-Go-PTE is the GitHub repository template for Per Tenant Extenstions. For creating a Per Tenant Extensions, this is your starting point.
- https://github.com/microsoft/AL-Go-AppSource is the GitHub repository template for AppSource apps. For creating an AppSource App, this is your starting point.
- https://github.com/microsoft/AL-Go-Actions is the GitHub repository containing the GitHub Actions used by the templates above.
Contributing
Please read this document to understand how to contribute to AL-Go for GitHub.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
See also
- Developing Extensions in AL
- AL-Go for GitHub
- Migrating to AL-Go for GitHub
- Structuring your AL-Go for GitHub repositories
- Preview of future AL-Go for GitHub functionality
- Branching strategies for your AL-Go for GitHub repo
- Deployment strategies and AL-Go for GitHub
- Secrets in AL-Go for GitHub
Trademarks
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.