Publicar a branch develop como ambiente de teste/homologacao na Azure,
mantendo o fluxo GitFlow:
feature/* -> pull request para develop -> preview environment
develop -> ambiente de teste/homologacao
- O projeto continua suportando
output: standalonepara Docker e runtime Node.js. - O deploy da Azure usa um build especifico com
NEXT_OUTPUT_MODE=export. - O workflow
.github/workflows/azure-static-web-apps-test.yml:- faz lint e type-check
- gera
out/comnpm run build:azure - publica o artefato na Azure Static Web Apps
- fecha previews automaticamente quando o PR para
develope encerrado
- Criar um recurso Azure Static Web Apps no plano Free.
- Associar o repositório GitHub ou usar apenas o deployment token.
- Em
Manage deployment token, copiar o token do ambiente de teste.
Adicionar os seguintes itens no repositorio:
AZURE_STATIC_WEB_APPS_API_TOKEN_TEST
SENTRY_AUTH_TOKEN # opcional, para upload de sourcemapsAZURE_TEST_SITE_URL
AZURE_TEST_GA_ID # opcional
AZURE_TEST_SENTRY_DSN # opcional
SENTRY_ORG # opcional (default: gabriel-db)
SENTRY_PROJECT # opcional (default: mandure-servicos)AZURE_TEST_SITE_URL deve conter a URL publica da app de teste, por exemplo:
https://agreeable-coast-012345678.5.azurestaticapps.netInferencia nossa com base no repositorio atual: como ja existe um workflow
customizado em .github/workflows/azure-static-web-apps-test.yml, o caminho
mais limpo e criar o recurso na Azure primeiro e depois conectar o token no
GitHub. Isso evita a criacao de um segundo workflow automatico em paralelo.
az login
az account set --subscription "<SUBSCRIPTION_ID_OU_NOME>"
$ResourceGroup = "rg-mandure-test"
$Location = "brazilsouth"
$StaticWebAppName = "mandure-servicos-test"
az group create `
--name $ResourceGroup `
--location $Location
az staticwebapp create `
--name $StaticWebAppName `
--resource-group $ResourceGroup `
--location $Location `
--sku Free$DefaultHostname = az staticwebapp show `
--name $StaticWebAppName `
--resource-group $ResourceGroup `
--query "defaultHostname" `
-o tsv
$DeploymentToken = az staticwebapp secrets list `
--name $StaticWebAppName `
--query "properties.apiKey" `
-o tsv
$DefaultHostname
$DeploymentTokenNo repositorio do GitHub:
Settings->Secrets and variables->Actions- Em
Secrets, criar:AZURE_STATIC_WEB_APPS_API_TOKEN_TEST
- Em
Variables, criar:AZURE_TEST_SITE_URLAZURE_TEST_SENTRY_DSN(opcional)SENTRY_ORG(opcional)SENTRY_PROJECT(opcional)
Valor sugerido para AZURE_TEST_SITE_URL:
https://<default-hostname-da-static-web-app>
git checkout develop
git pull origin develop
git merge --no-ff feature/<sua-feature>
git push origin developCom isso:
developpublica a homologacao- PRs para
developgeram preview environments temporarios - Se
SENTRY_AUTH_TOKENestiver configurado, sourcemaps tambem sao enviados para o Sentry durante o build
No GitHub:
- Abra
Actions - Execute ou acompanhe o workflow
Azure Static Web Apps Test - Ao final, abra a URL de teste
No portal da Azure:
- Abra a Static Web App
- Va em
Overview - Confirme o
Default hostname - Va em
Environmentspara acompanhar previews de PR
No portal da Azure:
- Static Web App ->
Overview Manage deployment tokenReset token- Atualize o secret
AZURE_STATIC_WEB_APPS_API_TOKEN_TESTno GitHub
- executa lint
- executa type-check
- gera export estatico
- publica a versao de teste na Azure
- executa o mesmo build de deploy
- publica um preview environment temporario vinculado ao PR
- fecha o preview quando o PR for encerrado
NEXT_PUBLIC_SITE_URLe injetada no workflow com base emAZURE_TEST_SITE_URL.metadata,robots.txtesitemap.xmlpassam a usar a URL do ambiente atual.- Se no futuro houver ambiente de producao separado, criar um segundo workflow
para a branch de producao escolhida (por exemplo
main) e outra Static Web App/ambiente dedicado.
npm run build
npm run build:azurenpm run build: build normal para Docker / Node.jsnpm run build:azure: export estatico para Azure Static Web Apps