JFrog CLI, votre héros pour GitHub Actions

Maintenant que la bêta de GitHub Actions version 2 est terminée et que l'outil est disponible pour une utilisation générale, comment pouvez-vous commencer à gérer vos dépôts Artifactory dans vos workflows DevOps automatisés ? Qui sauvera vos fichiers binaires en détresse ?

N’ayez crainte, JFrog est là ! Une nouvelle Action a rejoint GitHub Marketplace et vous permet d'utiliser JFrog CLI pour faire évoluer vos builds à travers les phases de développement, de test et de publication dans vos workflows GitHub Actions.

L’intégration d’Artifactory aux outils d’automatisation de votre choix a toujours été facile via JFrog CLI. Grâce à cette interface de ligne de commande simple, vous pouvez effectuer toutes les fonctions dont vous avez besoin pour créer un chemin DevOps contrôlé pour tous vos fichiers binaires logiciels

Précédemment sur le DevOps…

GitHub a publié GitHub Actions pour la première fois à la conférence GitHub Universe en 2018. Il s'agit d'une nouvelle méthode impressionnante d’automatisation des workflows pour l’intégration continue (CI) et le déploiement continu (CD). Grâce à quelques scripts simples, vous pouvez exécuter n’importe quel nombre d’opérations sur votre dépôt GitHub, déclenchées par des événements tels qu’un push de code source. Depuis GitHub en lui-même, vous pouvez exécuter des processus automatisés personnalisés pour compiler, tester, assembler, publier ou déployer n’importe quel projet de code.

Quelques changements importants ont eu lieu depuis lors. Le plus important a été introduit dans la récent version 2, qui utilise un langage de description basé sur YAML au lieu du HCL utilisé dans la version 1.

Les développeurs ont cependant suivi la cadence. GitHub Marketplace offre une variété d’Actions utiles par exemple pour l’exécution d’un linter, le déploiement sur AWS Lambda ou l’exécution de Jest. Et l’utilisation d’Artifactory rejoint désormais cette liste !

Si vous voulez pouvoir utiliser l’une de ces Actions publiées (ou vos propres Actions privées), elles doivent être définies dans un workflow GitHub Actions de votre dépôt. Étudions la méthode correspondante avec la nouvelle Action Setup JFrog CLI.

JFrog CLI à la rescousse

L’Action Setup JFrog CLI vous permet d’émettre n’importe quelle commande JFrog CLI pour Artifactory via le bloc run dans votre workflow. Par exemple :

- uses: jfrog/setup-jfrog-cli@v1
- run: jfrog --version

L’Action facilite davantage l'opération en gérant automatiquement les options de build name et build number ainsi que les arguments des commandes JFrog CLI qui les acceptent. Toutes les opérations associées au build seront automatiquement enregistrées avec Workflow Name en tant que nom de build et Commit Hash en tant que numéro de build.

Par exemple, cet ensemble de commandes CLI d'informations de téléchargement, de chargement et de build n’a pas besoin de spécifier le nom et le numéro de build, car ils sont automatiquement ajoutés pour vous : 

run: |
    jfrog rt dl artifacts/
    jfrog rt u aether artifacts/
    jfrog rt bp

Si vous avez besoin de ces identifiants, ils sont exposés en tant que variables d’environnement JFROG_CLI_BUILD_NAME et JFROG_CLI_BUILD_NUMBER.

Connexion au serveur Artifactory

Toutefois, pour utiliser Artifactory, l’Action a besoin du jeton qui contient les détails de configuration qui accorderont l’accès au serveur Artifactory. Vous devez stocker le jeton à l’intérieur d’un secret chiffré dans GitHub, où l’Action peut le récupérer en toute sécurité pendant l’exécution sans exposer ses détails dans le script de workflow GitHub Actions.

Pour obtenir le jeton, vous devrez installer JFrog CLI sur votre poste de travail local. Lorsque vous êtes connecté à Artifactory avec vos propres identifiants utilisateur, vous pouvez obtenir le jeton via la commande JFrog CLI :

$ jfrog rt c export

Vous pouvez copier le jeton, créer un secret chiffré dans GitHub et y stocker le jeton. Par exemple, stockez-le en tant que secret nommé artifactory_token_1.

L’Action s’attend à ce que le jeton soit exposé en tant que variable d’environnement nommée avec le préfixe JF_ARTIFACTORY_. Vous pouvez affecter cette variable d’environnement via le contexte secrets.  

- uses: jfrog/setup-jfrog-cli@v1
  env:
    JF_ARTIFACTORY_1: ${{ secrets.artifactory_token_1 }}
- run: |
    # Ping the server
    jfrog rt ping

Artifactory Sauve la Mise

Vous pouvez en savoir plus sur l’Action Setup JFrog CLI, y compris sur la manière de travailler avec plusieurs serveurs Artifactory, dans le fichier README du dépôt GitHub sur l'Action Setup JFrog CLI.

Nous espérons que vous trouverez cette action très utile pour automatiser votre utilisation d’Artifactory dans les workflows GitHub Action, mais aussi facile à utiliser. Si vous songez à des améliorations, nous serons ravis de les inclure. Comme toujours, nous sommes ravis de recevoir les modifications par pull requests, et nous serions ravis de l'améliorer !