Skip to main content

Configuration du cache d’outils sur les exécuteurs auto-hébergés sans accès à Internet

Si vous souhaitez utiliser les actions actions/setup incluses sur les exécuteurs autohébergés sans accès à Internet, vous devez d’abord remplir le cache d’outils de l’exécuteur pour vos workflows.

Remarque : Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.

À propos des actions de configuration incluses et du cache d’outils d’exécuteur

GitHub Actions sur GitHub Enterprise Server est conçu pour fonctionner dans des environnements n’ayant pas un accès à Internet complet. Par défaut, les workflows ne peuvent pas utiliser les actions de GitHub.com et de GitHub Marketplace.

La plupart des actions officielles créées par GitHub sont automatiquement groupées avec GitHub Enterprise Server. Cependant, les exécuteurs auto-hébergés sans accès à Internet ont besoin d’être configurés pour pouvoir utiliser les actions actions/setup-LANGUAGE incluses, telles que setup-node.

Les actions actions/setup-LANGUAGE ont normalement besoin d’un accès à Internet pour télécharger les binaires d’environnement nécessaires dans le cache d’outils d’exécuteur. Les exécuteurs auto-hébergés sans accès à Internet ne pouvant pas télécharger les binaires, vous devez remplir le cache d’outils d’exécuteur manuellement.

Vous pouvez remplir le cache d’outils d’exécuteur en exécutant un workflow GitHub Actions sur GitHub.com qui charge le cache d’outils d’un exécuteur hébergé par GitHub en tant qu’artefact, que vous pouvez alors transférer et extraire sur votre exécuteur auto-hébergé non connecté à Internet.

Remarque : Vous pouvez uniquement utiliser le cache d’outils d’un exécuteur hébergé par GitHub pour un exécuteur auto-hébergé qui possède un système d’exploitation et une architecture identiques. Par exemple, si vous utilisez un exécuteur hébergé par ubuntu-22.04 GitHub pour générer un cache d’outils, votre exécuteur auto-hébergé doit être un ordinateur Ubuntu 22.04 64 bits. Pour plus d’informations sur les exécuteurs hébergés par GitHub, consultez « À propos des exécuteurs hébergés par GitHub ».

Prérequis

  • Identifiez les environnements de développement dont auront besoin vos exécuteurs auto-hébergés. L’exemple suivant montre comment remplir un cache d’outils pour l’action setup-node, en utilisant Node.js versions 10 et 12.
  • Accédez à un dépôt sur GitHub.com dont vous pouvez vous servir pour exécuter un workflow.
  • Accédez au système de fichiers de votre exécuteur auto-hébergé pour remplir le dossier du cache d’outils.

Remplissage du cache d’outils pour un exécuteur auto-hébergé

  1. Sur GitHub.com, accédez à un dépôt dont vous pouvez vous servir pour exécuter un workflow GitHub Actions.

  2. Créez un fichier de workflow dans le dossier .github/workflows du dépôt qui charge un artefact contenant le cache d’outils d’un exécuteur hébergé par GitHub.

    L’exemple suivant illustre un workflow qui charge le cache d’outils pour un environnement Ubuntu 22.04, en utilisant l’action setup-node avec Node.js versions 10 et 12.

    name: Upload Node.js 10 and 12 tool cache
    on: push
    jobs:
      upload_tool_cache:
        runs-on: ubuntu-22.04
        steps:
          - name: Clear any existing tool cache
            run: |
              mv "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old"
              mkdir -p "${{ runner.tool_cache }}"
          - name: Setup Node 10
            uses: actions/setup-node@v3
            with:
              node-version: 10.x
          - name: Setup Node 12
            uses: actions/setup-node@v3
            with:
              node-version: 12.x
          - name: Archive tool cache
            run: |
              cd "${{ runner.tool_cache }}"
              tar -czf tool_cache.tar.gz *
          - name: Upload tool cache artifact
            uses: actions/upload-artifact@v3
            with:
              path: ${{runner.tool_cache}}/tool_cache.tar.gz
    
  3. Téléchargez l’artefact du cache d’outils à partir de l’exécution du workflow. Pour obtenir des instructions sur le téléchargement d’artefacts, consultez « Téléchargement d’artefacts de workflow ».

  4. Transférez l’artefact du cache d’outils dans votre exécuteur auto-hébergé et extrayez-le dans le répertoire du cache d’outils local. Le répertoire du cache d’outils par défaut est RUNNER_DIR/_work/_tool. Si l’exécuteur n’a pas encore traité de travaux, vous devrez peut-être créer les répertoires _work/_tool.

    Après avoir extrait l’artefact du cache d’outils chargé dans l’exemple précédent, vous devez disposer d’une structure de répertoires sur votre exécuteur auto-hébergé similaire à l’exemple suivant :

    RUNNER_DIR
    ├── ...
    └── _work
        ├── ...
        └── _tool
            └── node
                ├── 10.22.0
                │   └── ...
                └── 12.18.3
                    └── ...
    

Votre exécuteur auto-hébergé sans accès à Internet doit maintenant pouvoir utiliser l’action setup-node. Si vous rencontrez des problèmes, vérifiez que vous avez rempli le cache d’outils approprié pour vos workflows. Par exemple, si vous devez utiliser l’action setup-python, vous devez remplir le cache d’outils associé à l’environnement Python que vous souhaitez utiliser.