- iOS
- Android
- Xamarin
- GitHub
- GitHub Actions
Lors du développement d’une application, vous devez toujours gérer les versions de votre application. Pour livrer une nouvelle version de votre application, une façon de le faire serait:
Ce type de processus est trop long et sujet aux erreurs, alors que la seule chose que vous souhaitez est d’avoir la même version entre votre tag Git et votre package d’application livré. Alors pourquoi ne pas simplement lire le tag Git ?
Pour résoudre ce problème, j’ai développé un nouvel ensemble de GitHub Actions gratuites à utiliser dans votre workflow. Ces actions permettent d’extraire la version d’un tag de répertoire Git et de l’utiliser à votre projet comme vous le souhaitez.
Les voici:
Pour utiliser l’une de ces actions, rien de plus simple, suivez l’un des liens ci-dessus, puis cliquez sur le bouton Use latest version
. Cela ouvrira une boîte de dialogue avec le code yaml
pour l’utiliser.
La première action est la plus importante : extraire-version-de-tag-action
. Pour l’utiliser dans votre workflow, vous devez d’abord définir actions/checkout@v2
avec la propriété fetch-depth
à 0
. Cela garantira que toutes les informations des tags seront disponibles.
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0 # Mandatory to use the extract version from tag action
- name: Extract version from tag
uses: damienaicheh/extract-version-from-tag-action@v1.0.0
Cela extraira la version du dernier tag que vous avez poussé sur votre répertoire Git, à partir de la branche que vous avez sélectionnée pour créer votre workflow. Ensuite, l’action affectera chaque partie de votre tag dans une variable globale.
Par exemple, si vous avez un tag avec une valeur de v1.2.3
ou 1.2.3
, cela affectera automatiquement les variables globales $MAJOR
à 1, $MINOR
à 2 et $PATCH
à 3.
De plus, cette action calculera le nombre de commits depuis le premier commit de votre branche jusqu’au tag et assignera cette valeur à $NUMBER_OF_COMMITS
et si vous ne voulez que le nombre de commits depuis votre tag, vous pouvez utiliser $NUMBER_OF_COMMITS_SINCE_TAG
. Ces 4 variables seront alors utilisables dans votre workflow.yml
.
De plus l’action prend également en charge les tags de pré-version, donc si vous avez une version alpha comme celle-ci: v1.2.3-alpha6
l’alpha6 sera assigné à la variable $PRE_RELEASE
et vous pouvez l’utiliser comme les précédentes.
Par convention, les tags Git sont définis comme suit: v(Major).(Minor).(Patch)
. Mais l’action extract-version-from-tag-action
gère également les tags définies sans le préfixe v
.
Cette action peut être utilisée quelle que soit la technologie que vous utilisez pour vos GitHub Actions.
Il est maintenant temps d’utiliser les trois autres GitHub Actions pour mettre à jour vos versions d’applications iOS et Android quelle que soit la technologie mobile que vous avez utilisée.
update-ios-version-info-plist-action
pour le Info.plist
update-android-version-manifest-action
pour le AndroidManifest.xml
update-android-version-gradle-action
pour le build.gradle
dans le dossier app
Ces actions peuvent être utilisées avec ou sans l’action extract-version-from-tag-action
avant.
Supposons que vous utilisiez l’action extraire-version-de-tag-action
auparavant, vous pourriez utiliser les variables dans ces 3 actions comme ceci :
Pour iOS pour mettre à jour l’Info.plist
:
- name: Update Info.plist
uses: damienaicheh/update-ios-version-info-plist-action@v1.0.0
with:
info-plist-path: './path_to_your/Info.plist'
bundle-short-version-string: '${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}'
bundle-version: ${{ env.NUMBER_OF_COMMITS }}
print-file: true
Pour Android:
Si vous devez mettre à jour l’AndroidManifest.xml
:
- name: Update AndroidManifest.xml
uses: damienaicheh/update-android-version-manifest-action@v1.0.0
with:
android-manifest-path: './path_to_your/AndroidManifest.xml'
version-code: ${{ env.NUMBER_OF_COMMITS }}
version-name: '${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}'
print-file: true
Si vous devez mettre à jour le build.gradle
dans le dossier app
:
- name: Update gradle version for Android
uses: damienaicheh/update-android-version-gradle-action@v1.0.0
with:
build-gradle-path: './path_to_your/build.gradle'
version-code: ${{ env.NUMBER_OF_COMMITS }}
version-name: '${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}'
print-file: true
Le détail de chacun des paramètres d’entrée de ces actions est également disponible directement sur leur répertoire ou sur le GitHub Marketplace.
Notez que pour ces 3 actions vous pouvez définir la valeur des propriétés de différentes manières par exemple :
version-name: '${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}'
vous pouvez les concaténer avec n’importe quelle variable que vous avez définie précédemment :
version-name: '${{ env.MAJOR }}.${{ env.MINOR }}.${{ env.PATCH }}-${{ env.PRE_RELEASE }}-(${{ env.NUMBER_OF_COMMITS }})'
ou utilisez-le simplement comme ceci :
version-name: '1.2.3'
Ces actions sont un premier point de départ pour aider les développeurs à gérer leurs versions d’applications avec les GitHub Actions. N’hésitez pas à contribuer à ce projet si vous le souhaitez.
Happy coding!