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 Informationen zu von GitHub gehostete 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 des Swift-Starterworkflows
Von GitHub wird ein Swift-Starterworkflow bereitgestellt, der für die meisten Swift-Projekte verwendet werden kann. Wie du diesen Starterworkflow anpassen kannst, erfährst du anhand der Beispiele in diesem Leitfaden. Weitere Informationen findest du im Swift-Starterworkflow.
Für einen schnellen Einstieg füge den Starterworkflow zum Verzeichnis .github/workflows
deines Repositorys hinzu.
name: Swift
on: [push]
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: swift build
- name: Run tests
run: swift test
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@v3
- 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
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@v3
- uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
with:
swift-version: "5.3.3"
- name: Build
run: swift build
- name: Run tests
run: swift test