Skip to main content
ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

Swift のビルドとテスト

継続的インテグレーション (CI) ワークフローを作成して、Swift プロジェクトをビルドおよびテストできます。

はじめに

このガイドでは、Swift パッケージをビルドしてテストする方法を説明します。

GitHub ホストランナーには、ソフトウェアがプリインストールされたツールキャッシュがあり、Ubuntu および macOS ランナーには、Swift パッケージをビルドするための依存関係が含まれています。 最新のソフトウェアとプレインストールされたバージョンの Swift および Xcode の完全なリストについては、「GitHub ホストランナーについて」を参照してください。

必要な環境

YAMLの構文と、GitHub ActionsでのYAMLの使われ方に馴染んでいる必要があります。 詳細については、「GitHub Actionsのワークフロー構文」を参照してください。

Swift パッケージの基本を理解しておくことをお勧めします。 詳細については、Apple 開発者ドキュメントの「Swift パッケージ」を参照してください。

Using the Swift starter workflow

GitHub provides a Swift starter workflow that should work for most Swift projects, and this guide includes examples that show you how to customize this starter workflow. For more information, see the Swift starter workflow.

To get started quickly, add the starter workflow to the .github/workflows directory of your repository.

YAML
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

Swift バージョンの指定

GitHub ホストランナーでプリインストールされた特定のバージョンの Swift を使用するには、fwal/setup-swift アクションを使用します。 このアクションは、ランナーのツールキャッシュから特定のバージョンの Swift を見つけ、必要なバイナリを PATH に追加します。 これらの変更は、ジョブの残りの部分で保持されます。 詳しい情報については、fwal/setup-swift アクションを参照してください。

セルフホストランナーを使用している場合は、目的の Swift バージョンをインストールして PATH に追加する必要があります。

以下は、fwal/setup-swift アクションの使用例です。

複数の Swift バージョンを使用する

You can configure your job to use multiple versions of Swift in a matrix.

YAML
# このワークフローはGitHubによって認定されていないアクションを使用します。
# それらはサードパーティによって提供され、
# 別個の利用規約、プライバシーポリシー、
# サポートドキュメンテーションが適用されます。

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: fwal/setup-swift@2040b795e5c453c3a05fcb8316496afc8a74f192
        with:
          swift-version: ${{ matrix.swift }}
      - uses: actions/checkout@v3
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

単一の特定の Swift バージョンを使用する

5.3.3 などの特定のバージョンの Swift を使用するようにジョブを設定できます。

YAML
steps:
  - uses: fwal/setup-swift@2040b795e5c453c3a05fcb8316496afc8a74f192
    with:
      swift-version: "5.3.3"
  - name: Get swift version
    run: swift --version # Swift 5.3.3

コードのビルドとテスト

ローカルで使うのと同じコマンドを使用して、Swift でコードをビルドおよびテストできます。 以下は、ジョブでの swift buildswift test の使用例です。

YAML
steps:
  - uses: actions/checkout@v3
  - uses: fwal/setup-swift@2040b795e5c453c3a05fcb8316496afc8a74f192
    with:
      swift-version: "5.3.3"
  - name: Build
    run: swift build
  - name: Run tests
    run: swift test