Je suppose que vous n’êtes pas sans savoir que Github Action est disponible en beta !!! Et bonne nouvelle pour moi c’est disponible.
Voyons comment déployer un template ARM depuis notre repo github lorsqu’il y a une modification de ce dernier.
Pour commencer, il nous faut :
- Un repository github (public ou privée)
- Accès à Github Action
- Une souscription Azure
- Un resource group
- Un SPN avec les accès contributeurs sur notre ressource group
Sur votre repository Github, il faut ajouter les secrets suivants:
- Tenant Id
- Application Id
- Application Secret
Exactement, comme on peut le voir ci-dessous :
Maintenant plus qu’à écrire notre action:
name: Deploy to Azure Workflow
on:
push:
branches:
- master
path:
- arm/*
jobs:
deploy:
name: Deploy to Azure
runs-on: ubuntu-latest
steps:
- name: Git - Get Sources
uses: actions/checkout@master
- name: Azure - Login
uses: Azure/github-actions/login@master
env:
AZURE_SUBSCRIPTION: MySubName
AZURE_SERVICE_APP_ID: ${ { secrets.AZURE_SERVICE_APP_ID } }
AZURE_SERVICE_PASSWORD: ${ { secrets.AZURE_SERVICE_PASSWORD } }
AZURE_SERVICE_TENANT: ${ { secrets.AZURE_SERVICE_TENANT } }
- name: Azure - Deploy ARM Template
uses: Azure/github-actions/arm@master
env:
AZURE_RESOURCE_GROUP: github-actions
AZURE_TEMPLATE_LOCATION: ./arm/sample-arm.deploy.json
AZURE_TEMPLATE_PARAM_LOCATION: ./arm/sample-arm.deploy.parameters.json
Alors si on regarde un petit peu plus notre workflow.
On retrouve les éléments suivants :
Le nom de notre workflow
name: Deploy to Azure Workflow
Sur quel évènement il se déclenche, ici il s’agit d’un push sur la branche master qui modifie un fichier dans le dossier arm
on:
push:
branches:
- master
path:
- arm/*
Puis la définition de notre job, à savoir son nom et où est-c que celui s’éxécute.
jobs:
deploy:
name: Deploy to Azure
runs-on: ubuntu-latest
A ce jour, les valeurs disponibles pour faire tourner notre actions sont les suivantes Github Action documentation:
- ubuntu-latest, ubuntu-18.04, or ubuntu-16.04
- windows-latest, windows-2019, or windows-2016
- macOS-latest or macOS-10.14
Maintenant, passons à nos différentes étapes, la première est la plus simple il s’agit de récupérer le code source
steps:
- name: Git - Get Sources
uses: actions/checkout@master
Commençons par nous connecter à nous connecter à Azure grâce à notre SPN. Ici, nous allons utiliser une action disponible sur le repo Git Azure Action
- name: Azure - Login
uses: Azure/github-actions/login@master
env:
AZURE_SUBSCRIPTION: MySubName
AZURE_SERVICE_APP_ID: ${{ secrets.AZURE_SERVICE_APP_ID }}
AZURE_SERVICE_PASSWORD: ${{ secrets.AZURE_SERVICE_PASSWORD }}
AZURE_SERVICE_TENANT: ${{ secrets.AZURE_SERVICE_TENANT }}
Et pour finir, voici notre déploiement :
- name: Azure - Deploy ARM Template
uses: Azure/github-actions/arm@master
env:
AZURE_RESOURCE_GROUP: github-actions
AZURE_TEMPLATE_LOCATION: ./arm/sample-arm.deploy.json
AZURE_TEMPLATE_PARAM_LOCATION: ./arm/sample-arm.deploy.parameters.json
On peut par ailleurs retrouver notre workflow sur Github :
En tout cas, voici une raison de plus d’utiliser Github pour vos projets.
Comments
Post comment