[JAVA] Projet CI pour Maven dans Azure Pipelines

Dans la suite de l'article suivant, cette fois, j'essaierai d'utiliser Azure Pipelines. https://qiita.com/kasa_le/items/b152f91a61315a2b12b2

Azure Pipelines Inutile de dire qu'il s'agit du CI inclus dans Azure DevOps dans le service cloud de Microsoft Azure. https://azure.microsoft.com/ja-jp/services/devops/

Fonctionnalité

Vous pouvez vous connecter non seulement à Azure Repos (service de référentiel Azure Git), mais également à Github et Git à usage général (*). Naturellement, l'environnement de construction pour les projets .NET et C # est substantiel, et les développeurs Windows auront en fait le choix entre AppVeyor et celui-ci. Cependant, jusqu'à il y a quelque temps, il n'y avait que AppVeyor, donc ce serait bien d'avoir le choix. Il est également vrai que l'intégration avec Visual Studio et Visual Studio Code et les extensions sont substantielles.

Frais

Avec Azure Pipelines uniquement, jusqu'à 5 utilisateurs peuvent utiliser gratuitement 1 travail parallèle pendant jusqu'à 1800 minutes par mois. Dans le cas de l'auto-hébergement, il n'y a pas de limite d'utilisation mensuelle (1 travail parallèle). Nous utilisons Azure Artifacts pour télécharger des artefacts, qui peuvent être utilisés gratuitement jusqu'à 2 Go.

Pour plus de détails, ici. https://azure.microsoft.com/ja-jp/pricing/details/devops/azure-devops-services/

Performance

Eh bien, après tout, c'est Microsoft (transpiration)

Je m'en fiche, mais le cours E-learning est très fatiguant à lire sous forme d'histoire (sourire amer) Seul l'anglais est préparé, mais même s'il est en japonais, c'est étrange, alors peut-être que je n'ose pas préparer une traduction ^^;

Réglage

Il existe deux méthodes, l'une consiste à utiliser l'éditeur classique et l'autre à écrire un fichier yml. Pour les versions et les tests de base de Maven, vous pouvez laisser ** Maven ** sélectionné dans le modèle. Voici le paramètre de modèle par défaut en mode YAML. JerseySample a pu utiliser ce paramètre.

azure-pipelines.yml


# Maven
# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: Maven@3
  inputs:
    mavenPomFile: 'pom.xml'
    mavenOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.11'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/surefire-reports/TEST-*.xml'
    goals: 'package'

Vous pouvez vérifier les résultats du test sur la page du pipeline.

azule-pipelines-test-summary.PNG

Il est désagréable que la version 11 doive être spécifiée comme 1.11 en spécifiant jdkVersionOption (sueur)

Comme Github, OpenJDK utilise Azul Zulu. (Azul Zulu est essentiellement payant, mais son utilisation est gratuite avec Azure Pipelines. Quoi? Actions Github ??) https://github.com/actions/virtual-environments/blob/master/images/linux/Ubuntu1804-README.md

En raison de diverses circonstances, il est nécessaire de pouvoir construire avec AdoptOpenJDK, j'ai donc vérifié s'il pouvait être inclus, mais il y avait une personne qui a publié une extension pratique. https://marketplace.visualstudio.com/items?itemName=hanabi1224.adopt-openjdk-installer

atopdopenjdk_marketplase.png

Cela peut être utilisé à partir de ** Classic Editor **. L'Éditeur Classique a un petit lien sur la première page appelé Éditeur Classique au lieu de YAML lorsque vous créez un Pipeline, vous pouvez donc l'utiliser en cliquant dessus.

azule-pipelines-classic-editor.PNG

Vous pouvez également vous référer au yml après l'avoir créé avec l'éditeur classique.

azule-pipelines-view-yaml.PNG

Cependant, Classic Editor est obsolète, il est donc prudent de le laisser dans le menu à tout moment.

Impressions

L'opération est relativement simple, mais la structure du menu nécessite un certain temps d'adaptation.

Je dois faire quelques tutoriels en anglais parcours d'apprentissage et les articles suivants. , Il peut être difficile de comprendre où et ce que c'est. https://docs.microsoft.com/ja-jp/azure/devops/pipelines/create-first-pipeline?view=azure-devops&tabs=java%2Cyaml%2Cbrowser%2Ctfs-2018-2

Personnellement, j'ai senti que les résultats des tests étaient les plus faciles à voir. Il est également agréable d'avoir des boutons faciles à comprendre à exécuter manuellement.

C'est bien qu'il semble facile à intégrer avec Slack. Les particuliers et les petites équipes peuvent obtenir un niveau gratuit, et si vous avez déjà un abonnement, il est facile à utiliser.

À propos, Azure Pipelines a été le plus rapide par rapport aux autres services CI, de la configuration initiale à la création, au test et à la visibilité des résultats des tests.

** Addenda ** Après avoir tourné CI, un PR a été créé sur Github et un affichage a été ajouté à la page Vérifier.

azure_pipelines_github_pr.png

Cela semble pratique, mais je n'aime pas créer de relations publiques à chaque fois, alors j'ai besoin de faire des recherches ...

Recommended Posts

Projet CI pour Maven dans Azure Pipelines
Projet CI pour Maven sur AppVeyor
Projet CI pour Maven chez CircleCI
Projet CI pour Maven chez Github Actions
Exécutez JUnit et Spock dans un projet maven
Pratique CI / CD pour débutants - Partie 3 - Préparation d'un projet de développement
Fonctions Azure en Java
Recharger les dépendances dans Maven
Créer un projet Web Maven
Créez une base pour votre projet de traitement par lots dans Eclipse.