AccueilActualités informatiqueGestion des versions : GitHub Actions apporte des workflows réutilisables

Gestion des versions : GitHub Actions apporte des workflows réutilisables

Le gestionnaire de versions GitHub a annoncé que les workflows réutilisables dans GitHub Actions ont quitté le statut bêta. Les workflows réutilisables sont censés être avantageux dans différents scénarios, et l’équipe GitHub a déjà prévu de futures fonctionnalités. Ainsi, les workflows réutilisables devraient également faire leur entrée sur le GitHub Enterprise Server à l’avenir.

Sommaire

Les workflows réutilisables ont été lancés en octobre 2021 en tant que fonctionnalité bêta. Ils sont censés être plus faciles à entretenir que la duplication d’un flux de travail et offrir un avantage de vitesse lors de la mise en place d’un nouveau flux de travail, car ils se basent sur le travail d’autres personnes. Les entreprises peuvent par exemple les mettre à disposition sous la forme d’une collection gérée de manière centralisée.

Pour qu’un flux de travail puisse accéder à un flux de travail réutilisable, soit les deux doivent se trouver dans le même référentiel, soit le flux de travail à réutiliser doit se trouver dans un référentiel public – sinon, le nouveau flux de travail doit faire partie du même référentiel privé. Parmi les autres restrictions, on peut citer le fait qu’un workflow réutilisable ne peut pas appeler un autre workflow réutilisable.

GitHub propose la fonctionnalité Reusable Workflows à différentes fins. Ainsi, elle permet de regrouper les étapes de configuration ou de connexion en une seule action GitHub qui peut être publiée sur GitHub Marketplace et utilisée dans différents travaux et workflows.

Reusable Workflows doit également permettre de respecter certaines étapes pour les déploiements de production. En combinaison avec OpenID Connect – disponible en version bêta dans GitHub Actions – il est possible de limiter l’accès aux Credentials à un certain Reusable Workflow, que chaque membre de l’équipe doit obligatoirement exécuter pour le déploiement.

Si une entreprise exploite de nombreux référentiels dont la structure et le déploiement sont fondamentalement similaires, il est possible de les maintenir synchronisés grâce à un Reusable Workflow. C’est ce que montre GitHub dans une comparaison avant/après. Sans un workflow réutilisable, 15 lignes de code sont nécessaires dans cet exemple :

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [10.x, 12.x, 14.x, 15.x]

    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm ci
    - run: npm run build --if-present
    - run: npm test

En utilisant un workflow réutilisable, il reste les quatre lignes suivantes :

jobs:
  build:
  uses:
    my-org/actions/.github/workflows/node.js.yml@1

Le système CI/CD GitHub Actions a quitté le statut bêta en 2019 et est disponible gratuitement pour les dépôts publics. Plus de 10 000 Actions sont actuellement disponibles sur la Marketplace. Parmi les autres projets de GitHub figure la possibilité pour les clients d’entreprise d’utiliser des actions issues de dépôts internes sans avoir à les publier sur la Marketplace comme c’est le cas actuellement.

Lire aussi

Toutes les informations complémentaires sur les Reusable Workflows sont disponibles dans un billet de blog.

Plus d'articles