GitHub Actions for Azure help you easily create workflows to build, test, package, release and deploy to Azure, following a push or pull request.
You use Azure starter templates present in this repo to easily create GitHub CI/CD workflows targeting Azure, to deploy your apps created with popular languages and frameworks such as .NET, Node.js, Java, PHP, Ruby or Python, in containers or running on any operating system.
Folder Structure:
These workflow samples to automate your deployment workflows targeting various Azure services are organized under folders of same names. For example: /AppService/asp.net-core-webapp-on-azure.yml
-
/AppService Samples to configure and deploy web applications that scale with your business, to Azure App Service
-
/AzureCLI Samples to run Azure CLI scripts to provision and manage Azure resources from a GitHub Action workflow
-
/ARM Samples to deploy Azure Resource Manager templates
-
/AzurePipelines Samples to trigger a CD run in Azure Pipelines from a GitHub Action workflow
-
/Database Samples to deploy to a database on Azure, Azure SQl database or Azure MySQL database
-
/FunctionApp Samples to build and deploy serverless apps to Azure Functions
-
/Kubernetes Samples to deploy to any Kubernetes cluster on-premise or any cloud including Azure Kubernetes service
-
/MachineLearning Samples to build and deploy machine learning models using Azure Machine Learning
-
/Terraform Samples to deploy infrastructure to an Azure subscription using Terraform Azure Provider
-
/AzurePolicy Samples to trigger on-demand Azure Policy compliance scans from a GitHub Action workflow
-
/End-to-End/Serverless Sample to deploy and manage the lifecycle of a serverless web application. The application serves static content from Azure Blob Storage, and implements an API using Azure Functions which is exposed through API Management. The API reads data from Cosmos DB and returns the results to the web app.
Naming Notation:
os-ecosystem-ServiceName-on-azure
: example, linux-container-functionapp-on-azure.yml- OS in the name is optional if the action workflow sample is OS agnostic and doesnt significantly change between OS (Linux/Windows)
- Ecosystem can be a language (.NET, Nodejs, java, Python, Ruby etc.) or Docker/Container Or Database flavours like SQL/MySQL etc.
Workflow structure
- Include 'name' for every workflow to indicate the purpose of the workflow
- Ensure that starter workflows run on: push by default.
- For all secrets to be defined in the workflow, use UPPER_CASE with underscore delimiters instead of snake_case or camelCase.
- Include a commented Configuration section which includes hyperlinks to documentation for the Actions used and other pre-reqs.
- Define environment variables as part of configuration. We think this will help provide visibility into the things that need to be configured as part of te workflow.
- Ensure all Azure actions referenced in the workflow are pointing to a released version of the action and not from the master. For list of all released GitHub actions for Azure, please refer to https://github.com/Azure/actions
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.