Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
azd Si la plantilla no incluye un archivo de definición de canalización de CI/CD, puede crear uno para automatizar la compilación e implementación de la aplicación. Una definición de canalización bien estructurada normalmente incluye cuatro secciones principales:
Desencadenador: especifica los eventos en los que se debe ejecutar la canalización, como los envíos de código a ramas específicas, las solicitudes de incorporación de cambios o los desencadenadores manuales. La definición de desencadenadores garantiza que la canalización se ejecute automáticamente en respuesta a las actividades de desarrollo, lo que permite la integración e implementación continuas.
Permisos: especifica el acceso necesario para que la canalización interactúe con los recursos de forma segura. Por ejemplo, conceda permisos para leer el contenido del repositorio o solicitar tokens de identidad. Los permisos correctos son esenciales para implementaciones seguras y correctas.
Sistema operativo o grupo: establece el entorno para los trabajos de canalización, como una imagen de máquina virtual específica (por ejemplo,
ubuntu-latest) o un grupo de agentes. Elegir el entorno adecuado garantiza la compatibilidad con los requisitos de compilación e implementación de la aplicación.Los Pasos: Enumera las tareas que realiza la canalización, como la verificación del código, la instalación de dependencias, la compilación, el aprovisionamiento de infraestructura y la implementación en Azure. Cada paso debe definirse claramente para automatizar el proceso de implementación de un extremo a otro.
En los ejemplos siguientes se muestra cómo crear un archivo de definición de canalización y configuraciones relacionadas para Acciones de GitHub y Azure Pipelines.
Para ejecutar azd en GitHub Actions, configure las configuraciones siguientes:
- Conceder ámbitos de acceso a
id-token: writeycontents: read. -
Instale la acción azd, a menos que use una imagen de Docker con
azdpreinstalado.
Use esta plantilla como punto de partida para la definición de la canalización:
on:
workflow_dispatch:
push:
# Run when commits are pushed to mainline branch (main or master)
# Set this to the mainline branch you are using
branches:
- main
- master
# Set this permission if you are using a Federated Credential.
permissions:
id-token: write
contents: read
jobs:
build:
runs-on: ubuntu-latest
# azd build-in variables.
# This variables are always set by `azd pipeline config`
# You can set them as global env (apply to all steps) or you can add them to individual steps' environment
env:
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
## Define the additional variables or secrets that are required globally (provision and deploy)
# ADDITIONAL_VARIABLE_PLACEHOLDER: ${{ variables.ADDITIONAL_VARIABLE_PLACEHOLDER }}
# ADDITIONAL_SECRET_PLACEHOLDER: ${{ secrets.ADDITIONAL_SECRET_PLACEHOLDER }}
steps:
- name: Checkout
uses: actions/checkout@v4
# using the install-azd action
- name: Install azd
uses: Azure/setup-azd@v1.0.0
# # If you want to use azd-daily build, or install it from a PR, you can remove previous step and
# # use the next one:
# - name: Install azd - daily or from PR
# # Update this scrip based on the OS - pool of your pipeline. This example is for a linux pipeline installing daily build
# run: curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --version daily
# shell: pwsh
# azd set up Federated Credential by default. You can remove this step if you are using Client Credentials
- name: Log in with Azure (Federated Credentials)
if: ${{ env.AZURE_CLIENT_ID != '' }}
run: |
azd auth login `
--client-id "$Env:AZURE_CLIENT_ID" `
--federated-credential-provider "github" `
--tenant-id "$Env:AZURE_TENANT_ID"
shell: pwsh
## If you set up your pipeline with Client Credentials, remove previous step and uncomment this one
# - name: Log in with Azure (Client Credentials)
# if: ${{ env.AZURE_CREDENTIALS != '' }}
# run: |
# $info = $Env:AZURE_CREDENTIALS | ConvertFrom-Json -AsHashtable;
# Write-Host "::add-mask::$($info.clientSecret)"
# azd auth login `
# --client-id "$($info.clientId)" `
# --client-secret "$($info.clientSecret)" `
# --tenant-id "$($info.tenantId)"
# shell: pwsh
# env:
# AZURE_CREDENTIALS: ${{ secrets.AZURE_CREDENTIALS }}
- name: Provision Infrastructure
run: azd provision --no-prompt
env:
# # uncomment this if you are using infrastructure parameters
# AZD_INITIAL_ENVIRONMENT_CONFIG: ${{ secrets.AZD_INITIAL_ENVIRONMENT_CONFIG }}
## Define the additional variables or secrets that are required only for provision
# ADDITIONAL_VARIABLE_PLACEHOLDER: ${{ variables.ADDITIONAL_VARIABLE_PLACEHOLDER }}
# ADDITIONAL_SECRET_PLACEHOLDER: ${{ secrets.ADDITIONAL_SECRET_PLACEHOLDER }}
- name: Deploy Application
run: azd deploy --no-prompt
env:
## Define the additional variables or secrets that are required only for deploy
# ADDITIONAL_VARIABLE_PLACEHOLDER: ${{ variables.ADDITIONAL_VARIABLE_PLACEHOLDER }}
# ADDITIONAL_SECRET_PLACEHOLDER: ${{ secrets.ADDITIONAL_SECRET_PLACEHOLDER }}