{"meta":{"title":"Swift のビルドとテスト","intro":"Swift プロジェクトのビルドとテストのための継続的インテグレーション (CI) ワークフローを作成する方法について説明します。","product":"GitHub Actions","breadcrumbs":[{"href":"/ja/actions","title":"GitHub Actions"},{"href":"/ja/actions/tutorials","title":"チュートリアル"},{"href":"/ja/actions/tutorials/build-and-test-code","title":"コードのビルドとテスト"},{"href":"/ja/actions/tutorials/build-and-test-code/swift","title":"Swift"}],"documentType":"article"},"body":"# Swift のビルドとテスト\n\nSwift プロジェクトのビルドとテストのための継続的インテグレーション (CI) ワークフローを作成する方法について説明します。\n\n## はじめに\n\nこのガイドでは、Swift パッケージをビルドしてテストする方法を説明します。\n\nGitHub ホステッド ランナーにはプリインストールされたソフトウェアのあるツール キャッシュがあり、Ubuntu と macOS ランナーには、Swift パッケージをビルドするための依存関係が含まれています。 Swift と Xcode の最新のソフトウェアおよびプレインストールされるバージョンの完全な一覧については、「[GitHub ホステッド ランナー](/ja/actions/using-github-hosted-runners/about-github-hosted-runners#supported-software)」を参照してください。\n\n## 前提条件\n\nYAMLの構文と、GitHub ActionsでのYAMLの使われ方に馴染んでいる必要があります。 詳しくは、「[GitHub Actions　のワークフロー構文](/ja/actions/using-workflows/workflow-syntax-for-github-actions)」をご覧ください。\n\nSwift パッケージの基本を理解しておくことをお勧めします。 詳細については、Apple 開発者向けドキュメントの「[Swift Packages](https://developer.apple.com/documentation/xcode/swift-packages)」(Swift パッケージ) を参照してください。\n\n## Swift ワークフロー テンプレートの使用\n\nすぐに開始するには、リポジトリの `.github/workflows` ディレクトリにワークフロー テンプレートを追加します。\n\nGitHub では、ほとんどの Swift プロジェクトで動作する Swift 用のワークフロー テンプレートが提供されています。 このガイドの以降のセクションでは、このワークフロー テンプレートをカスタマイズする方法の例を示します。\n\n1. GitHub で、リポジトリのメイン ページに移動します。\n\n2. リポジトリ名の下にある **\\[<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-play\" aria-label=\"play\" role=\"img\"><path d=\"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z\"></path></svg> Actions]** をクリックします。\n\n   ![\"github/docs\" リポジトリのタブのスクリーンショット。 \\[アクション\\] タブがオレンジ色の枠線で強調表示されています。](/assets/images/help/repository/actions-tab-global-nav-update.png)\n\n3. ワークフローが既にリポジトリ内にある場合は、 **\\[新しいワークフロー]** をクリックします。\n\n4. \\[ワークフローの選択] ページには、推奨されるワークフロー テンプレートの選択が表示されます。 「swift」を検索します。\n\n5. ```\n          **[継続的インテグレーション]** をクリックし、ワークフローの選択肢をフィルター処理します。\n   ```\n\n6. \\[Swift] ワークフローで、**\\[構成]** をクリックします。\n\n7. 必要に応じてワークフローを編集します。 たとえば、ワークフローを実行するブランチを変更します。\n\n8. ```\n          **[Commit changes]** をクリックします。\n   ```\n\n`swift.yml` ワークフロー ファイルが使用中リポジトリの `.github/workflows` ディレクトリに追加されます。\n\n## Swift バージョンの指定\n\nGitHub ホスト型ランナーでプリインストールされた特定のバージョンの Swift を使用するには、`swift-actions/setup-swift` アクションを使用します。 このアクションでは、ランナーのツール キャッシュから特定のバージョンの Swift を見つけ、必要なバイナリを `PATH` に追加します。 これらの変更は、ジョブの残りの間、持続されます。 詳細については、「[`swift-actions/setup-swift`](https://github.com/marketplace/actions/setup-swift) アクション」を参照してください。\n\nセルフホスト型ランナーを使用している場合、目的の Swift バージョンをインストールして `PATH` に追加する必要があります。\n\n次の例では、`swift-actions/setup-swift` アクションの使用を示します。\n\n### 複数の Swift バージョンを使用する\n\nマトリックスで Swift の複数のバージョンを使用するようにジョブを設定できます。\n\n```yaml copy\n\n# このワークフローはGitHubによって認定されていないアクションを使用します。\n# それらはサードパーティによって提供され、\n# 別個の利用規約、プライバシーポリシー、\n# ドキュメントを参照してください。\n\n# GitHub では、コミット SHA にアクションをピン留めすることが推奨されます。\n# 新しいバージョンを取得するには、SHA を更新する必要があります。\n# タグまたはブランチを参照することもできますが、アクションは警告なしに変更される可能性があります。\n\nname: Swift\n\non: [push]\n\njobs:\n  build:\n    name: Swift ${{ matrix.swift }} on ${{ matrix.os }}\n    strategy:\n      matrix:\n        os: [ubuntu-latest, macos-latest]\n        swift: [\"5.2\", \"5.3\"]\n    runs-on: ${{ matrix.os }}\n    steps:\n      - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf\n        with:\n          swift-version: ${{ matrix.swift }}\n      - uses: actions/checkout@v5\n      - name: Build\n        run: swift build\n      - name: Run tests\n        run: swift test\n```\n\n### 単一の特定の Swift バージョンを使用する\n\n```\n          `5.3.3` などの特定のバージョンの Swift を使用するようにジョブを設定できます。\n```\n\n```yaml copy\n# このワークフローはGitHubによって認定されていないアクションを使用します。\n# それらはサードパーティによって提供され、\n# 別個の利用規約、プライバシーポリシー、\n# ドキュメントを参照してください。\nsteps:\n  - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf\n    with:\n      swift-version: \"5.3.3\"\n  - name: Get swift version\n    run: swift --version # Swift 5.3.3\n```\n\n## コードのビルドとテスト\n\nローカルで使うのと同じコマンドを使用して、Swift でコードをビルドおよびテストできます。 この例では、ジョブで `swift build` と `swift test` を使用する方法を示します。\n\n```yaml copy\n# このワークフローはGitHubによって認定されていないアクションを使用します。\n# それらはサードパーティによって提供され、\n# 別個の利用規約、プライバシーポリシー、\n# ドキュメントを参照してください。\nsteps:\n  - uses: actions/checkout@v5\n  - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf\n    with:\n      swift-version: \"5.3.3\"\n  - name: Build\n    run: swift build\n  - name: Run tests\n    run: swift test\n```"}