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.
-
Navigiere auf Ihre GitHub Enterprise Server-Instance zur Hauptseite des Repositorys.
-
Klicke unter dem Namen deines Repositorys auf Aktionen.
-
Wenn du bereits über einen Workflow im Repository verfügst, klicke auf Neuer Workflow.
-
Auf der Seite „Workflow auswählen“ wird eine Auswahl empfohlener Starterworkflows angezeigt. Suchen Sie nach „swift“.
-
Filtern Sie die Auswahl von Workflows, indem Sie auf Continuous Integration klicken.
-
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
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
-
Bearbeiten Sie den Workflow nach Bedarf. Ändern Sie beispielsweise die Verzweigung, auf der der Workflow ausgeführt werden soll.
-
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.
# 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
# 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
.
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
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:
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