|
1 | | -name: AZD Deployment |
2 | | -on: |
| 1 | +name: AZD Template Validation |
| 2 | +on: |
3 | 3 | workflow_dispatch: |
4 | 4 | push: |
5 | 5 | branches: |
6 | 6 | - main |
7 | 7 |
|
8 | 8 | permissions: |
9 | | - id-token: write |
10 | 9 | contents: read |
| 10 | + id-token: write |
| 11 | + pull-requests: write |
11 | 12 |
|
12 | 13 | jobs: |
13 | | - build: |
| 14 | + template_validation: |
14 | 15 | runs-on: ubuntu-latest |
15 | | - env: |
16 | | - AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }} |
17 | | - AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }} |
18 | | - AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }} |
19 | | - AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }} |
20 | | - AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }} |
21 | | - AZURE_LOCATION: ${{ vars.AZURE_LOCATION }} |
22 | | - AZURE_USER_OBJECT_ID: '' |
| 16 | + name: azd template validation |
23 | 17 | steps: |
24 | | - - name: Checkout |
25 | | - uses: actions/checkout@v4 |
26 | | - - name: Install azd |
27 | | - uses: Azure/setup-azd@v2 |
28 | | - - name: Azure Developer CLI Login |
29 | | - run: | |
30 | | - azd auth login ` |
31 | | - --client-id "$Env:AZURE_CLIENT_ID" ` |
32 | | - --federated-credential-provider "github" ` |
33 | | - --tenant-id "$Env:AZURE_TENANT_ID" |
34 | | - shell: pwsh |
35 | | - - name: Azure CLI Login |
| 18 | + - uses: actions/checkout@v4 |
| 19 | + |
| 20 | + - name: Azure Login |
36 | 21 | uses: azure/login@v2 |
37 | 22 | with: |
38 | 23 | client-id: ${{ vars.AZURE_CLIENT_ID }} |
39 | 24 | tenant-id: ${{ vars.AZURE_TENANT_ID }} |
40 | 25 | subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }} |
41 | | - - name: Provision Infrastructure |
42 | | - run: azd provision --no-prompt |
| 26 | + |
| 27 | + - name: Create Resource Group for Validation |
| 28 | + run: | |
| 29 | + ENV_NAME="${{ vars.AZURE_ENV_NAME }}" |
| 30 | + RG_NAME="rg-${ENV_NAME}" |
| 31 | + echo "Creating resource group for template validation: ${RG_NAME}" |
| 32 | + az group create \ |
| 33 | + --name "${RG_NAME}" \ |
| 34 | + --location "${{ vars.AZURE_LOCATION }}" \ |
| 35 | + --tags "CreatedBy=GitHubActions" |
| 36 | + echo "Resource group ${RG_NAME} created successfully" |
| 37 | +
|
| 38 | + - uses: microsoft/template-validation-action@Latest |
| 39 | + with: |
| 40 | + validateAzd: ${{ vars.TEMPLATE_VALIDATE_AZD }} |
| 41 | + useDevContainer: ${{ vars.TEMPLATE_USE_DEV_CONTAINER }} |
| 42 | + validateTests: ${{ vars.AZD_VALIDATE_TESTS }} |
| 43 | + id: validation |
43 | 44 | env: |
44 | | - AZD_INITIAL_ENVIRONMENT_CONFIG: ${{ secrets.AZD_INITIAL_ENVIRONMENT_CONFIG }} |
| 45 | + AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }} |
| 46 | + AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }} |
| 47 | + AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }} |
| 48 | + AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }} |
| 49 | + AZURE_LOCATION: ${{ vars.AZURE_LOCATION }} |
| 50 | + AZURE_RESOURCE_GROUP: rg-${{ vars.AZURE_ENV_NAME }} |
| 51 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 52 | + # Set correct principal type for GitHub Actions ServicePrincipal |
| 53 | + AZURE_DEPLOYER_PRINCIPAL_TYPE: ServicePrincipal |
| 54 | + # Infrastructure parameter defaults for pipeline |
| 55 | + AZURE_ACR_ENABLED: 'false' |
| 56 | + AZURE_API_MANAGEMENT_ENABLED: 'false' |
| 57 | + AZURE_AI_CONTENT_SAFETY_ENABLED: 'false' |
| 58 | + AZURE_AI_DOC_INTELLIGENCE_ENABLED: 'false' |
| 59 | + AZURE_AI_LANGUAGE_ENABLED: 'false' |
| 60 | + AZURE_AI_SEARCH_ENABLED: 'true' |
| 61 | + AZURE_AI_SPEECH_ENABLED: 'false' |
| 62 | + AZURE_AI_TRANSLATOR_ENABLED: 'false' |
| 63 | + |
| 64 | + AZURE_AI_VISION_ENABLED: 'false' |
| 65 | + AZURE_APP_SAMPLE_ENABLED: 'false' |
| 66 | + AZURE_COSMOS_DB_ENABLED: 'true' |
| 67 | + AZURE_NETWORK_ISOLATION: 'false' |
| 68 | + AZURE_SQL_SERVER_ENABLED: 'false' |
| 69 | + AZURE_AI_DEPLOYMENTS_LOCATION: ${{ vars.AZURE_LOCATION }} |
| 70 | + AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }} |
| 71 | + |
| 72 | + |
| 73 | + - name: print result |
| 74 | + run: cat ${{ steps.validation.outputs.resultFile }} |
0 commit comments