Note
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.
Introduction
Ce guide vous montre comment générer et tester un package Swift.
Les exécuteurs hébergés dans GitHub ont un cache d’outils où sont préinstallés des logiciels. Les exécuteurs Ubuntu et macOS incluent les dépendances qui permettent de créer des packages Swift. Pour obtenir la liste complète des logiciels à jour et des versions préinstallées de Swift et Xcode, consultez « Utilisation des exécuteurs hébergés par GitHub ».
Prérequis
Vous devez déjà être familiarisé avec la syntaxe YAML et savoir comment elle s’utilise avec GitHub Actions. Pour plus d’informations, consultez « Workflow syntax for GitHub Actions ».
Il est recommandé de connaître les bases des packages Swift. Pour plus d’informations, consultez « Swift Packages » dans la documentation de développement Apple.
Utilisation d’un modèle de workflow Swift
Pour démarrer rapidement, ajoutez un modèle de workflow au répertoire .github/workflows
de votre référentiel.
GitHub fournit un modèle de workflow pour Swift qui devrait fonctionner pour la plupart des projets Swift. Les sections suivantes de ce guide donnent des exemples de la manière dont vous pouvez personnaliser ce modèle de workflow.
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom de votre dépôt, cliquez sur Actions.
-
Si vous disposez déjà d’un workflow dans votre dépôt, cliquez sur Nouveau workflow.
-
La page « Choisir un workflow » présente une sélection de modèles de workflow recommandés. Recherchez « swift ».
-
Filtrez la sélection des flux de travail en cliquant sur Intégration continue.
-
Dans le flux de travail « Swift », cliquez sur Configurer.
Si vous ne trouvez pas le modèle de workflow « Swift », copiez le code de workflow suivant dans un nouveau fichier appelé
swift.yml
dans le répertoire.github/workflows
de votre référentiel.YAML name: Swift on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Build run: swift build -v - name: Run tests run: swift test -v
name: Swift on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Build run: swift build -v - name: Run tests run: swift test -v
-
Modifiez le workflow en fonction des besoins. Par exemple, modifiez la branche sur laquelle le workflow s’exécutera.
-
Cliquez sur Valider les changements.
Spécification d’une version Swift
Pour utiliser une version préinstallée de Swift sur un exécuteur hébergé dans GitHub, utilisez l’action swift-actions/setup-swift
. Cette action recherche une version spécifique de Swift à partir du cache d’outils de l’exécuteur, et ajoute les fichiers binaires nécessaires à PATH
. Ces modifications seront conservées pendant toute la durée du travail. Pour plus d’informations, consultez l’action swift-actions/setup-swift
.
Si vous utilisez un exécuteur auto-hébergé, vous devez installer les versions Swift souhaitées et les ajouter à PATH
.
Les exemples ci-dessous montrent l’utilisation de l’action swift-actions/setup-swift
.
Utilisation de plusieurs versions Swift
Vous pouvez configurer votre travail pour utiliser plusieurs versions de Swift dans une matrice.
# Ce workflow utilise des actions qui ne sont pas certifiées par GitHub. # Elles sont fournies par un tiers et régies par # des conditions d’utilisation du service, une politique de confidentialité et un support distincts. # documentation en ligne. # GitHub recommande d’épingler les actions à un SHA de commit. # Pour obtenir une version plus récente, vous devez mettre à jour le SHA. # Vous pouvez également référencer une balise ou une branche, mais l’action peut changer sans avertissement. name: Swift on: [push] jobs: build: name: Swift ${{ matrix.swift }} on ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest] swift: ["5.2", "5.3"] runs-on: ${{ matrix.os }} steps: - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf with: swift-version: ${{ matrix.swift }} - uses: actions/checkout@v4 - name: Build run: swift build - name: Run tests run: swift test
# Ce workflow utilise des actions qui ne sont pas certifiées par GitHub.
# Elles sont fournies par un tiers et régies par
# des conditions d’utilisation du service, une politique de confidentialité et un support distincts.
# documentation en ligne.
# GitHub recommande d’épingler les actions à un SHA de commit.
# Pour obtenir une version plus récente, vous devez mettre à jour le SHA.
# Vous pouvez également référencer une balise ou une branche, mais l’action peut changer sans avertissement.
name: Swift
on: [push]
jobs:
build:
name: Swift ${{ matrix.swift }} on ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
swift: ["5.2", "5.3"]
runs-on: ${{ matrix.os }}
steps:
- uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
with:
swift-version: ${{ matrix.swift }}
- uses: actions/checkout@v4
- name: Build
run: swift build
- name: Run tests
run: swift test
Utilisation d’une seule version Swift
Vous pouvez configurer votre travail pour qu’il utilise une seule version de Swift, comme 5.3.3
.
steps: - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf with: swift-version: "5.3.3" - name: Get swift version run: swift --version # Swift 5.3.3
steps:
- uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
with:
swift-version: "5.3.3"
- name: Get swift version
run: swift --version # Swift 5.3.3
Génération et test de votre code
Vous pouvez utiliser les mêmes commandes que celles que vous utilisez localement pour générer et tester votre code à l’aide de Swift. Cet exemple montre comment utiliser swift build
et swift test
dans un travail :
steps: - uses: actions/checkout@v4 - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf with: swift-version: "5.3.3" - name: Build run: swift build - name: Run tests run: swift test
steps:
- uses: actions/checkout@v4
- uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
with:
swift-version: "5.3.3"
- name: Build
run: swift build
- name: Run tests
run: swift test