Observação: GitHub Actions estava disponível para GitHub Enterprise Server 2.22 como um beta limitado. O beta terminou. GitHub Actions está agora geralmente disponível em GitHub Enterprise Server 3.0 ou posterior. Para obter mais informações, consulte as observações sobre a versão GitHub Enterprise Server 3.0.
- Para obter mais informações sobre a atualização para GitHub Enterprise Server 3.0 ou posterior, consulte "Atualizar GitHub Enterprise Server".
- Para obter mais informações sobre a configuração de GitHub Actions após atualizar, consulte a documentação para GitHub Enterprise Server 3.0.
Observação: Executores hospedados em GitHub não são atualmente compatíveis com GitHub Enterprise Server. Você pode ver mais informações sobre suporte futuro planejado no Itinerário público do GitHub.
Introdução
Este guia explica como usar GitHub Actions para criar, testar e publicar um aplicativo no Azure App Service.
O Azure App Service pode executar aplicativos web em várias linguagens, mas este guia mostra a implantação de um projeto Node.js existente.
Pré-requisitos
Antes de criar seu fluxo de trabalho de GitHub Actions, primeiro você precisa concluir as etapas de configuração a seguir:
-
Crie um plano do Azure App Service.
Por exemplo, você pode usar o CLI do Azure para criar um novo plano de App Service:
Shell az appservice plan create \ --resource-group MY_RESOURCE_GROUP \ --name MY_APP_SERVICE_PLAN \ --is-linux
No comando acima, substitua
MY_RESOURCE_GROUP
pelo seu Grupo de Recursos do Azure pré-existente, eMY_APP_SERVICE_PLAN
por um novo nome para o plano do App Service.Para obter mais informações, consulte a documentação do Azure usando o CLI do Azure:
- Para autenticação, consulte "Efetuar login com o CLI do Azure".
- Se você precisar criar um novo grupo de recursos, consulte "grupo az".
-
Crie um aplicativo web.
Por exemplo, você pode usar o CLI do Azure para criar um aplicativo web do Azure App Service com um tempo de execução de nó:
Shell az webapp create \ --name MY_WEBAPP_NAME \ --plan MY_APP_SERVICE_PLAN \ --resource-group MY_RESOURCE_GROUP \ --runtime "node|10.14"
No comando acima, substitua os parâmetros pelos seus próprios valores, em que
MY_WEBAPP_NAME
é um novo nome para o aplicativo web. -
Configure um perfil de publicação do Azure e crie um segredo de
AZURE_WEBAPP_PUBLISH_PROFILE
.Gere suas credenciais de implantação do Azure usando um perfil de publicação. Para obter mais informações, consulte "Gerar credenciais de implantação" na documentação do Azure.
No seu repositório GitHub, crie um segredo denominado
AZURE_WEBAPP_PUBLISH_PROFILE
que contém o conteúdo do perfil de publicação. Para obter mais informações sobre a criação de segredos, consulte "Segredos criptografados". -
Para aplicativos Linux, adicione uma configuração de aplicativo denominada
WEBSITE_WEBDEPLOY_USE_SCM
e defina-a como verdadeiro no seu aplicativo. Para obter mais informações, consulte "Configurar aplicativos no portal" na documentação do Azure. -
Opcionalmente, configure um ambiente de implantação. Os ambientes são usados para descrever um alvo geral de implantação como
produção
,preparo
oudesenvolvimento
. Quando um fluxo de trabalho de GitHub Actions é implantado em um ambiente, o ambiente é exibido na página principal do repositório. You can use environments to require approval for a job to proceed, restrict which branches can trigger a workflow, or limit access to secrets. For more information about creating environments, see "Using environments for deployment."
Criar o fluxo de trabalho
Depois de preencher os pré-requisitos, você pode prosseguir com a criação do fluxo de trabalho.
O exemplo a seguir de fluxo de trabalho mostra como compilar, testar e implantar o projeto Node.js no Azure App Service quando uma versão é criada.
Certifique-se de definir AZURE_WEBAPP_NAME
na chave de fluxo de trabalho env
como o nome do aplicativo web que você criou. Você também pode alterar AZURE_WEBAPP_PACKAGE_PATH
se o caminho para o seu projeto não for a raiz do repositório e NODE_VERSION
se você quiser usar uma versão de nó diferente de 10.x
.
If you configured a deployment environment, change the value of environment
to be the name of your environment. If you did not configure an environment, delete the environment
key.
# This workflow uses actions that are not certified by GitHub.
# São fornecidas por terceiros e regidas por
# termos de serviço, política de privacidade e suporte separados
# documentação.
on:
release:
types: [created]
env:
AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name
AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
NODE_VERSION: '10.x' # set this to the node version to use
jobs:
build-and-deploy:
name: Build and Deploy
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
- name: npm install, build, and test
run: |
# Build and test the project, then
# deploy to Azure Web App.
npm install
npm run build --if-present
npm run test --if-present
- name: 'Deploy to Azure WebApp'
uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
Recursos adicionais
Os seguintes recursos também podem ser úteis:
- Para o fluxo de trabalho inicial original, consulte
azure.yml
no repositóriostarter-workflows
de GitHub Actions. - A ação usada para fazer a implantação do aplicativo web é a ação oficial
Azure/webapps-deploy
do Azure. - Para obter mais exemplos de fluxos de trabalho do GitHub Action que fazem a implantação no Azure, consulte o repositório actions-workflow-samples.
- O início rápido de "Criar um aplicativo web Node.js no Azure" na documentação do aplicativo web do Azure mostra como usar o VS Code com a extensão do Azure App Service.