1414 runs-on : ubuntu-latest
1515 environment : validation
1616 name : Template validation
17+ env :
18+ AZURE_CLIENT_SECRET : ${{ secrets.AZURE_CLIENT_SECRET }}
1719 steps :
1820 - name : Checkout code
1921 uses : actions/checkout@v4
@@ -37,28 +39,32 @@ jobs:
3739 - name : Ensure Bicep CLI installed
3840 run : |
3941 az bicep install || true
40- echo "Bicep version:"; az bicep version || echo "Bicep not available" >&2
41-
42- - name : Azure Login (OIDC)
42+ - name : Azure Login (Service Principal Client Secret)
43+ if : ${{ env.AZURE_CLIENT_SECRET != '' }}
44+ run : |
45+ echo "Using service principal client secret authentication path."
46+ az login --service-principal \
47+ -u ${{ secrets.AZURE_CLIENT_ID }} \
48+ -p ${{ secrets.AZURE_CLIENT_SECRET }} \
49+ --tenant ${{ secrets.AZURE_TENANT_ID }}
50+ az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
51+ --tenant ${{ secrets.AZURE_TENANT_ID }}
52+ - name : Azure Login (OIDC) (no client secret present)
53+ if : ${{ env.AZURE_CLIENT_SECRET == '' }}
4354 uses : azure/login@v1
4455 with :
45- client-id : ${{ secrets.AZURE_CLIENT_ID }}
46- tenant-id : ${{ secrets.AZURE_TENANT_ID }}
47- subscription-id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
56+ client-id : ${{ secrets.AZURE_CLIENT_ID }}
57+ tenant-id : ${{ secrets.AZURE_TENANT_ID }}
58+ subscription-id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
59+ continue-on-error : false
4860
49- - name : Fallback Azure Login (Client Secret)
50- if : failure()
51- env :
52- HAS_CLIENT_SECRET : ${{ secrets.AZURE_CLIENT_SECRET != '' }}
61+ - name : Auth Mode Announcement
5362 run : |
54- if [ "${HAS_CLIENT_SECRET}" != "true" ]; then
55- echo "OIDC login failed and no client secret available for fallback." >&2
56- exit 1
63+ if [ -n "${{ secrets.AZURE_CLIENT_SECRET }}" ]; then
64+ echo "Auth mode: client secret (SP). OIDC skipped."
65+ else
66+ echo "Auth mode: OIDC (no client secret set). Ensure federated credential exists for environment 'validation'."
5767 fi
58- echo "OIDC login failed; attempting client secret login fallback." >&2
59- az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }} || {
60- echo "Client secret fallback login also failed." >&2; exit 1; }
61- az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }} || true
6268
6369 - name : Post-login diagnostics
6470 if : always()
0 commit comments