|
1 | | -name: Azure Template Validation |
| 1 | +name: Azure Dev Deploy |
| 2 | + |
2 | 3 | on: |
3 | 4 | workflow_dispatch: |
4 | 5 |
|
5 | 6 | permissions: |
6 | 7 | contents: read |
7 | 8 | id-token: write |
8 | | - pull-requests: write |
9 | 9 |
|
10 | 10 | jobs: |
11 | | - template_validation_job: |
12 | | - environment: production |
| 11 | + deploy: |
13 | 12 | runs-on: ubuntu-latest |
14 | | - name: Template validation |
15 | | - |
| 13 | + environment: production |
| 14 | + env: |
| 15 | + AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} |
| 16 | + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} |
| 17 | + AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} |
| 18 | + AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }} |
| 19 | + AZURE_LOCATION: ${{ vars.AZURE_LOCATION }} |
| 20 | + AZURE_ENV_MODEL_CAPACITY: 1 # keep low to avoid potential quota issues |
| 21 | + AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }} |
16 | 22 | steps: |
17 | | - # Step 1: Checkout the code from your repository |
18 | | - - name: Checkout code |
19 | | - uses: actions/checkout@v5 |
20 | | - |
21 | | - # Step 2: Validate the Azure template using microsoft/template-validation-action |
22 | | - - name: Validate Azure Template |
23 | | - uses: microsoft/template-validation-action@v0.4.3 |
24 | | - id: validation |
| 23 | + - name: Checkout Code |
| 24 | + uses: actions/checkout@v4 |
| 25 | + |
| 26 | + - name: Set timestamp and env name |
| 27 | + run: | |
| 28 | + HHMM=$(date -u +'%H%M') |
| 29 | + echo "AZURE_ENV_NAME=azd-${{ vars.AZURE_ENV_NAME }}-${HHMM}" >> $GITHUB_ENV |
| 30 | +
|
| 31 | + - name: Install azd |
| 32 | + uses: Azure/setup-azd@v2 |
| 33 | + |
| 34 | + - name: Login to Azure |
| 35 | + uses: azure/login@v2 |
25 | 36 | with: |
26 | | - useDevContainer: false |
27 | | - env: |
28 | | - AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} |
29 | | - AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} |
30 | | - AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} |
31 | | - AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }} |
32 | | - AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }} |
33 | | - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
34 | | - AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }} |
35 | | - |
36 | | - # Step 3: Print the result of the validation |
37 | | - - name: Print result |
38 | | - run: cat ${{ steps.validation.outputs.resultFile }} |
| 37 | + client-id: ${{ secrets.AZURE_CLIENT_ID }} |
| 38 | + tenant-id: ${{ secrets.AZURE_TENANT_ID }} |
| 39 | + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} |
| 40 | + |
| 41 | + - name: Login to AZD |
| 42 | + shell: bash |
| 43 | + run: | |
| 44 | + azd auth login \ |
| 45 | + --client-id "$AZURE_CLIENT_ID" \ |
| 46 | + --federated-credential-provider "github" \ |
| 47 | + --tenant-id "$AZURE_TENANT_ID" |
| 48 | +
|
| 49 | + - name: Provision and Deploy |
| 50 | + shell: bash |
| 51 | + run: | |
| 52 | + if ! azd env select "$AZURE_ENV_NAME"; then |
| 53 | + azd env new "$AZURE_ENV_NAME" --subscription "$AZURE_SUBSCRIPTION_ID" --location "$AZURE_LOCATION" --no-prompt |
| 54 | + fi |
| 55 | + azd config set defaults.subscription "$AZURE_SUBSCRIPTION_ID" |
| 56 | + azd env set AZURE_ENV_AI_DEPLOYMENTS_LOCATION="$AZURE_LOCATION" |
| 57 | + azd up --no-prompt |
0 commit comments