Note
Actualmente los ejecutores hospedados por GitHub no se admiten en GitHub Enterprise Server. Puede ver más información sobre la compatibilidad futura planeada en GitHub public roadmap.
Introducción
Esta guía te muestra cómo crear y probar un paquete de Swift.
Los ejecutores hospedados en GitHub tienen una caché de herramientas con software preinstalado y los ejecutores de Ubuntu y macOS incluyen las dependencias para crear paquetes de Swift. Para obtener una lista completa de software actualizado y las versiones preinstaladas de Swift y Xcode, consulta "Utilizar los ejecutores hospedados en GitHub".
Requisitos previos
Ya debes estar familiarizado con la sintaxis de YAML y con cómo se utiliza con GitHub Actions. Para obtener más información, vea «Sintaxis del flujo de trabajo para Acciones de GitHub».
Te recomendamos que tengas un entendimiento básico de los paquetes de Swift. Para más información, vea "Paquetes de Swift" en la documentación para desarrolladores de Apple.
Uso de una plantilla de flujo de trabajo de Swift
Para comenzar rápidamente, agregue una plantilla de flujo de trabajo al directorio .github/workflows
del repositorio.
GitHub proporciona una la plantilla de flujo de trabajo para Swift que debería funcionar para la mayoría de los proyectos de Swift. En las secciones siguientes de esta guía se proporcionan ejemplos de cómo puede personalizar esta plantilla de flujo de trabajo.
-
En GitHub, navegue hasta la página principal del repositorio.
-
En el nombre del repositorio, haz clic en Acciones.
-
Si ya tiene un flujo de trabajo en su repositorio, haga clic en New workflow (Nuevo flujo de trabajo).
-
En la página "Elegir un flujo de trabajo" se muestra una selección de plantillas de flujo de trabajo recomendadas. Busca «Swift».
-
Filtra la selección de flujos de trabajo con un clic en Integración continua.
-
En el flujo de trabajo “Swift”, haga clic en Configurar.
Si no encuentra la plantilla de flujo de trabajo "Swift", copie el siguiente código de flujo de trabajo en un nuevo archivo llamado
swift.yml
en el directorio.github/workflows
del repositorio.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
-
Edita el flujo de trabajo según sea necesario. Por ejemplo, cambia la rama en la que se ejecutará el flujo de trabajo.
-
Haga clic en Commit changes (Confirmar cambios).
Especificar una versión de Swift
Para usar una versión preinstalada concreta de Swift en un ejecutor hospedado en GitHub, use la acción swift-actions/setup-swift
. Esta acción busca una versión específica de Swift en la caché de herramientas en el ejecutor y agrega los binarios necesarios a PATH
. Estos cambios persistirán durante el resto de un job. Para más información, vea la acción swift-actions/setup-swift
.
Si usa un ejecutor autohospedado, debe instalar las versiones de Swift deseadas y agregarlas a PATH
.
En los ejemplos siguientes se muestra cómo usar la acción swift-actions/setup-swift
.
Utilizar versiones múltiples de Swift
Puedes configurar el trabajo para que use múltiples versiones de Swift en una matriz.
# Este flujo de trabajo usa acciones que no GitHub no certifica. # Estas las proporcionan entidades terceras y las gobiernan # condiciones de servicio, políticas de privacidad y documentación de soporte # en línea. # GitHub recomienda anclar acciones a un SHA de confirmación. # Para obtener una versión más reciente, debes actualizar el SHA. # También puedes hacer referencia a una etiqueta o rama, pero la acción puede cambiar sin ninguna advertencia. 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
# Este flujo de trabajo usa acciones que no GitHub no certifica.
# Estas las proporcionan entidades terceras y las gobiernan
# condiciones de servicio, políticas de privacidad y documentación de soporte
# en línea.
# GitHub recomienda anclar acciones a un SHA de confirmación.
# Para obtener una versión más reciente, debes actualizar el SHA.
# También puedes hacer referencia a una etiqueta o rama, pero la acción puede cambiar sin ninguna advertencia.
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
Utilizar solo una versión específica de Swift
Puede configurar el trabajo para que use una versión concreta de Swift, por ejemplo, 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
steps:
- uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
with:
swift-version: "5.3.3"
- name: Get swift version
run: swift --version # Swift 5.3.3
Construir y probar tu código
Puedes utilizar los mismos comandos que usas localmente para compilar y probar tu código utilizando Swift. En este ejemplo se muestra cómo usar swift build
y swift test
en un trabajo:
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