Skip to main content
Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Compilar y probar Swift

Puedes crear un flujo de trabajo de integración continua (CI) para crear y probar tu proyecto de Swift.

Introducción

Esta guía te muestra cómo crear y probar un paquete de Swift.

Los ejecutores hospedados en GitHub tienen un caché de herramientas con software preinstalado y los ejecutores de Ubuntu y macOS incluyen las dependencias para crear paquetes de Swift. Para encontrar una lista completa de software actualizado y las versiones preinstaladas de Swift y Xcode, consulta la sección "Acerca de los ejecutores hospedados en GitHub".

Prerrequisitos

Ya debes estar familiarizado con la sintaxis de YAML y con cómo se utiliza con GitHub Actions. Para obtener más información, consulta "Sintaxis de flujo de trabajo para GitHub Actions".

Te recomendamos que tengas un entendimiento básico de los paquetes de Swift. Para obtener más información, consulta la sección "Paquetes de Swift" en la documentación de desarrollador de Apple.

Utilizar el flujo de trabajo inicial de Swift

GitHub proporciona un flujo de trabajo inicial de Swift que debería funcionar par ala mayoría de los proyectos de Swift y esta guía incluye ejemplos que te muestran cómo personalizarlo. Para obtener más información, consulta la sección Flujo de trabajo inicial de Swift.

Para comenzar rápidamente, agrega el flujo de trabajo inicial al directorio de .github/workflows de tu repositorio.

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

Especificar una versión de Swift

Para utilizar una versión preinstalada de Swift en un ejecutor hospedado en GitHub, utiliza la acción fwal/setup-swift. Esta acción encuentra una versión específica de Swift desde el caché de herramientas en el ejecutor y agrega los binarios necesarios al PATH. Estos cambios persistirán durante el resto de un job. Para obtener más información, consulta la acción fwal/setup-swift.

Si estás utilizando un ejecutor auto-hospedado, debes instalar tus versiones de Swift deseadas y agregarlas al PATH.

Los siguientes ejemplos demuestran el uso de la acción fwal/setup-swift.

Utilizar versiones múltiples de Swift

Puedes configurar tu job para que utilice versiones múltiples de Swift en una matriz.

YAML
# This workflow uses actions that are not certified by GitHub.
# Estas las proporcionan entidades terceras y las gobiernan
# condiciones de servicio, políticas de privacidad y documentación de soporte
# documentación.

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

Utilizar solo una versión específica de Swift

Puedes configurar tu job para que utilice una sola versión específica de Swift, tal como la 5.3.3.

YAML
steps:
  - uses: fwal/setup-swift@2040b795e5c453c3a05fcb8316496afc8a74f192
    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. Este ejemplo demuestra cómo utilizar swift build y swift test en un job:

YAML
steps:
  - uses: actions/checkout@v3
  - uses: fwal/setup-swift@2040b795e5c453c3a05fcb8316496afc8a74f192
    with:
      swift-version: "5.3.3"
  - name: Build
    run: swift build
  - name: Run tests
    run: swift test