Skip to main content

Erstellen und Testen eines Swift-Projekts

Du kannst einen Continuous-Integration-Workflow (CI) erstellen, um dein Swift-Projekt zu erstellen und zu testen.

Hinweis: GitHub-gehostete Runner werden auf GitHub Enterprise Server derzeit nicht unterstützt. Weitere Informationen zur geplanten zukünftigen Unterstützung findest Du in der GitHub public roadmap.

Einführung

Dieser Leitfaden zeigt dir, wie du ein Swift-Paket erstellen und testen kannst.

GitHub-gehostete Runner haben einen Toolscache mit vorinstallierter Software, und die Ubuntu- und macOS-Runner enthalten die Abhängigkeiten zum Erstellen von Swift-Paketen. Eine vollständige Liste der aktuellen Software und der vorinstallierten Versionen von Swift und Xcode findest du unter Verwenden von auf GitHub gehosteten Runnern.

Voraussetzungen

Du solltest bereits mit der YAML-Syntax vertraut sein und wissen, wie sie mit GitHub Actions verwendet wird. Weitere Informationen findest du unter Workflowsyntax für GitHub Actions.

Du solltest grundlegende Kenntnisse über Swift-Pakete besitzen. Weitere Informationen findest du in der Apple-Entwicklerdokumentation unter Swift-Pakete.

Verwenden eines Swift-Starterworkflows

Für einen schnellen Einstieg füge einen Starterworkflow zum Verzeichnis .github/workflows deines Repositorys hinzu.

GitHub enthält einen Starterworkflow für Swift, der für die meisten Swift-Projekte funktionieren sollte. In den nachfolgenden Abschnitten dieser Anleitung finden Sie Beispiele dafür, wie dieser Starterworkflow angepasst werden kann.

  1. Navigiere auf Ihre GitHub Enterprise Server-Instance zur Hauptseite des Repositorys.

  2. Klicke unter dem Namen deines Repositorys auf Aktionen.

    Screenshot: Registerkarten für das Repository „github/docs“. Die Registerkarte „Aktionen“ ist mit einem orangefarbenen Rahmen hervorgehoben.

  3. Wenn du bereits über einen Workflow im Repository verfügst, klicke auf Neuer Workflow.

  4. Die Seite „Workflow auswählen“ zeigt eine Auswahl empfohlener Startworkflows. Suchen Sie nach „swift“.

  5. Filtern Sie die Auswahl von Workflows, indem Sie auf Continuous Integration klicken.

  6. Klicken Sie im Workflow „Swift“ auf Konfigurieren.

    Wenn Sie den Starterworkflow „Swift“ nicht finden, kopieren Sie den folgenden Workflowcode in eine neue Datei namens swift.yml im .github/workflows-Verzeichnis Ihres Repositorys.

    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
    
  7. Bearbeiten Sie den Workflow nach Bedarf. Ändern Sie beispielsweise die Verzweigung, auf der der Workflow ausgeführt werden soll.

  8. Klicke auf Änderungen committen.

Angeben einer Swift-Version

Verwende die Aktion swift-actions/setup-swift, um eine vorinstallierte Swift-Version auf einem von GitHub gehosteten Runner zu verwenden. Mit dieser Aktion wird im Toolcache der jeweiligen Runner nach einer bestimmten Version von Swift gesucht, und die erforderlichen Binärdateien werden PATH hinzugefügt. Diese Änderungen werden für den Rest eines Auftrags beibehalten. Weitere Informationen findest du unter der Aktion swift-actions/setup-swift.

Wenn du einen selbstgehosteten Runner verwendest, musst du deine gewünschten Swift Versionen installieren und diese PATH hinzufügen.

Die folgenden Beispiele veranschaulichen die Verwendung der swift-actions/setup-swift-Aktion.

Verwenden mehrerer Swift-Versionen

Du kannst deinen Auftrag so konfigurieren, dass mehrere Versionen von Swift in einer Matrix verwendet werden.

YAML

# Dieser Workflow verwendet Aktionen, die nicht von GitHub zertifiziert sind.
# Sie werden von einem Drittanbieter bereitgestellt und unterliegen
# separaten Nutzungsbedingungen, Datenschutzbestimmungen und Support
# Onlinedokumentation.

# GitHub empfiehlt, Aktionen an einen Commit-SHA anzuheften.
# Um eine neuere Version zu erhalten, musst du den SHA aktualisieren.
# Du kannst auch auf ein Tag oder einen Branch verweisen, aber die Aktion kann sich ohne Vorwarnung ändern.

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

Verwenden einer einzelnen bestimmten Swift-Version

Du kannst deinen Auftrag so konfigurieren, dass eine einzelne bestimmte Version von Swift verwendet wird, z. B. 5.3.3.

YAML
steps:
  - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
    with:
      swift-version: "5.3.3"
  - name: Get swift version
    run: swift --version # Swift 5.3.3

Deinen Code bauen und testen

Du kannst dieselben Befehle verwenden, die du auch lokal verwendest, um deinen Code mit Swift zu erstellen und zu testen. In diesem Beispiel wird veranschaulicht, wie die Befehle swift build und swift test in einem Auftrag verwendet werden:

YAML
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