Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

Swift のビルドとテスト

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

はじめに

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

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

前提条件

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

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

Swift スターター ワークフローの使用

GitHub には、ほとんどの Swift プロジェクトで動作する Swift スターター ワークフローが用意されており、このガイドにはこのスターター ワークフローのカスタマイズ方法を示す例が含まれています。 詳細については、「Swift スターター ワークフロー」を参照してください。

すぐに作業を開始するには、リポジトリの .github/workflows ディレクトリにスターター ワークフローを追加します。

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 を使用するには、swift-actions/setup-swift アクションを使用します。 このアクションでは、ランナーのツール キャッシュから特定のバージョンの Swift を見つけ、必要なバイナリを PATH に追加します。 これらの変更は、ジョブの残りの部分で保持されます。 詳細については、「swift-actions/setup-swift アクション」を参照してください。

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

次の例では、swift-actions/setup-swift アクションの使用を示します。

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

マトリックスで Swift の複数のバージョンを使用するようにジョブを設定できます。

YAML

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

# GitHub では、コミット SHA にアクションをピン留めすることが推奨されます。
# 新しいバージョンを取得するには、SHA を更新する必要があります。
# タグまたはブランチを参照することもできますが、アクションは警告なしに変更される可能性があります。

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

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

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

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

コードのビルドとテスト

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

YAML
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