このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-09-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

Swift のビルドとテスト

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

ノート: GitHub Actionsは、GitHub Enterprise Server 2.22で限定ベータとして利用可能でした。 ベータは終了しました。 GitHub Actionsは、GitHub Enterprise Server 3.0以降で一般に利用可能になりました。 詳しい情報については、GitHub Enterprise Server 3.0 のリリースノートを参照してください。


ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。

はじめに

このガイドでは、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@v2
      - 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 バージョンを使用する

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

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

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

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

YAML
steps:
  - uses: fwal/setup-swift@d43a564349d1341cd990cfbd70d94d63b8899475
    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@v2
  - uses: fwal/setup-swift@d43a564349d1341cd990cfbd70d94d63b8899475
    with:
      swift-version: "5.3.3"
  - name: Build
    run: swift build
  - name: Run tests
    run: swift test

問題がまだ解決していませんか?