|
1 | | -name: Build & One-Deploy to Azure |
| 1 | +name: Build & Deploy to Azure Web App (pubsite) |
| 2 | + |
| 3 | +on: |
| 4 | + push: |
| 5 | + branches: [main] |
| 6 | + workflow_dispatch: |
2 | 7 |
|
3 | 8 | permissions: |
4 | 9 | contents: read |
5 | 10 | id-token: write |
6 | 11 |
|
7 | | -on: |
8 | | - push: |
9 | | - branches: [ main ] |
| 12 | +env: |
| 13 | + NODE_VERSION: '20' |
10 | 14 |
|
11 | 15 | jobs: |
12 | 16 | build-and-deploy: |
13 | 17 | runs-on: ubuntu-latest |
14 | | - |
15 | 18 | steps: |
16 | | - # 1️⃣ Check out your code |
17 | | - - uses: actions/checkout@v3 |
| 19 | + - name: ⬇️ Checkout |
| 20 | + uses: actions/checkout@v4 |
18 | 21 |
|
19 | | - # 2️⃣ Authenticate to Azure |
20 | | - - name: Azure Login |
21 | | - uses: azure/login@v1 |
| 22 | + - name: ⎔ Use Node ${{ env.NODE_VERSION }} |
| 23 | + uses: actions/setup-node@v3 |
| 24 | + with: |
| 25 | + node-version: ${{ env.NODE_VERSION }} |
| 26 | + |
| 27 | + - name: 📦 Install dependencies |
| 28 | + run: npm ci |
| 29 | + |
| 30 | + - name: 🛠 Build Next.js app |
| 31 | + run: npm run build |
| 32 | + |
| 33 | + - name: 🔐 Azure login (OIDC) |
| 34 | + uses: azure/login@v2 |
22 | 35 | with: |
23 | 36 | client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_E5978DC6004B4BB995ACD60ADAF513EF }} |
24 | 37 | tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_8824E98435E440FAA46E146AD7716A44 }} |
25 | 38 | subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_6A3ECC57385541ACB3AC40EA396FC5B5 }} |
26 | 39 |
|
27 | | - # 3️⃣ Use Node 20 and build |
28 | | - - name: Setup Node.js |
29 | | - uses: actions/setup-node@v3 |
30 | | - with: |
31 | | - node-version: "20" |
32 | | - - name: Install dependencies |
33 | | - run: npm ci |
34 | | - - name: Build |
35 | | - run: npm run build |
| 40 | + - name: ⚙️ Ensure build-on-deploy |
| 41 | + run: | |
| 42 | + az webapp config appsettings set \ |
| 43 | + --resource-group pubsite_group \ |
| 44 | + --name pubsite \ |
| 45 | + --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true |
36 | 46 |
|
37 | | - # 4️⃣ Deploy with Azure CLI’s ZIP-push (OneDeploy under the hood) |
38 | | - - name: Deploy via Azure CLI |
39 | | - uses: azure/cli@v2 |
| 47 | + - name: 🚀 Deploy to Azure Web App |
| 48 | + uses: azure/webapps-deploy@v3 |
40 | 49 | with: |
41 | | - azcliversion: latest |
42 | | - inlineScript: | |
43 | | - az webapp deploy \ |
44 | | - --resource-group myPortfolioRG \ |
45 | | - --name pubsite \ |
46 | | - --src-path "${{ github.workspace }}" \ |
47 | | - --type zip |
| 50 | + app-name: pubsite |
| 51 | + package: . |
0 commit comments