참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.
소개
이 가이드에서는 Swift 패키지를 빌드하고 테스트하는 방법을 보여 줍니다.
GitHub 호스트 실행기에는 소프트웨어가 사전 설치된 도구 캐시가 있으며, Ubuntu 및 macOS 실행기에는 Swift 패키지를 빌드하기 위한 종속성이 포함되어 있습니다. 최신 소프트웨어 및 사전 설치된 버전의 Swift와 Xcode에 대한 전체 목록은 "GitHub 호스팅 실행기 사용"을(를) 참조하세요.
필수 조건
YAML 구문과 이를 GitHub Actions와 함께 사용하는 방법에 대해 잘 알고 있어야 합니다. 자세한 내용은 "GitHub Actions에 대한 워크플로 구문"을(를) 참조하세요.
Swift 패키지를 기본적으로 이해하는 것이 좋습니다. 자세한 내용은 Apple 개발자 설명서의 “Swift 패키지”를 참조하세요.
Swift 시작 워크플로 사용
빠르게 시작하려면 시작 워크플로를 리포지토리의 .github/workflows
디렉터리에 추가합니다.
GitHub는 대부분의 Swift 프로젝트에서 작동하는 Swift 시작 워크플로를 제공합니다. 이 가이드의 후속 섹션에서는 이 시작 워크플로를 사용자 지정하는 방법에 대한 예제를 제공합니다.
-
GitHub Enterprise Server 인스턴스에서 리포지토리의 기본 페이지로 이동합니다.
-
리포지토리 이름 아래에서 작업을 클릭합니다.
-
리포지토리에 워크플로가 이미 있는 경우 새 워크플로를 클릭합니다.
-
"워크플로 선택" 페이지에 권장되는 시작 워크플로가 표시됩니다. "swift"를 검색합니다.
-
지속적 통합을 클릭하여 워크플로 선택을 필터링합니다.
-
"Swift" 워크플로에서 구성을 클릭합니다.
"Swift" 시작 워크플로를 찾을 수 없는 경우 다음 워크플로 코드를 리포지토리의 디렉터리에 호출
swift.yml
된.github/workflows
새 파일에 복사합니다.YAML name: Swift on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Build run: swift build -v - name: Run tests run: swift test -v
name: Swift on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Build run: swift build -v - name: Run tests run: swift test -v
-
필요에 따라 워크플로를 편집합니다. 예를 들어 워크플로가 실행될 분기를 변경합니다.
-
변경 내용 커밋을 클릭합니다.
Swift 버전 지정
GitHub 호스트 실행기에서 사전 설치된 특정 버전의 Swift를 사용하려면 swift-actions/setup-swift
작업을 사용하세요. 이 작업은 실행기의 도구 캐시에서 특정 버전의 Swift를 찾고 필수 이진 파일을 PATH
에 추가합니다. 이러한 변경 내용은 작업의 나머지 부분에 대해 유지됩니다. 자세한 내용은 swift-actions/setup-swift
작업을 참조하세요.
자체 호스트 실행기를 사용하는 경우 원하는 Swift 버전을 설치하고 PATH
에 추가해야 합니다.
아래 예제에서는 swift-actions/setup-swift
작업을 사용하는 방법을 보여 줍니다.
여러 Swift 버전 사용
행렬에서 여러 버전의 Swift를 사용하도록 작업을 구성할 수 있습니다.
# 이 워크플로는 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@v4 - name: Build run: swift build - name: Run tests run: swift test
# 이 워크플로는 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@v4
- name: Build
run: swift build
- name: Run tests
run: swift test
단일 특정 Swift 버전 사용
5.3.3
과 같은 특정 버전의 Swift를 사용하도록 작업을 구성할 수 있습니다.
steps: - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf with: swift-version: "5.3.3" - name: Get swift version run: swift --version # Swift 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
코드 빌드 및 테스트
로컬에서 사용하는 것과 동일한 명령으로 Swift를 사용하여 코드를 빌드하고 테스트할 수 있습니다. 이 예제에서는 작업에서 swift build
및 swift test
를 사용하는 방법을 보여 줍니다.
steps: - uses: actions/checkout@v4 - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf with: swift-version: "5.3.3" - name: Build run: swift build - name: Run tests run: swift test
steps:
- uses: actions/checkout@v4
- uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
with:
swift-version: "5.3.3"
- name: Build
run: swift build
- name: Run tests
run: swift test