# Construção e teste Swift

Saiba como criar um fluxo de trabalho de integração contínua (CI) para criar e testar seu projeto Swift.

## Introdução

Este guia mostra como criar e testar um pacote do Swift.

Os executores hospedados em GitHub têm um cache de ferramentas com software pré-instalado, e os executores do Ubuntu e do macOS incluem as dependências para a compilação de pacotes do Swift. Para ver a lista completa de softwares atualizados e as versões pré-instaladas do Swift e do Xcode, consulte [Executores hospedados no GitHub](/pt/actions/using-github-hosted-runners/about-github-hosted-runners#supported-software).

## Pré-requisitos

Você já deve estar familiarizado com a sintaxe YAML e como é usado com GitHub Actions. Para saber mais, confira [Sintaxe de fluxo de trabalho para o GitHub Actions](/pt/actions/using-workflows/workflow-syntax-for-github-actions).

Recomendamos que você tenha uma compreensão básica dos pacotes Swift. Para obter mais informações, consulte [Pacotes do Swift](https://developer.apple.com/documentation/xcode/swift-packages) na documentação do desenvolvedor da Apple.

## Usando um modelo de workflow do Swift

Para uma introdução rápida, adicione um modelo de fluxo de trabalho ao diretório `.github/workflows` do repositório.

O GitHub fornece um modelo de workflow para Swift que deve funcionar para a maioria dos projetos Swift. As seções subsequentes deste guia fornecem exemplos de como personalizar esse modelo de workflow.

1. Em GitHub, acesse a página principal do repositório.

2. No nome do repositório, clique em **<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**.

   ![Captura de tela das guias do repositório "github/docs". A guia "Ações" está realçada com um contorno laranja.](/assets/images/help/repository/actions-tab-global-nav-update.png)

3. Se você já tiver um fluxo de trabalho no repositório, clique em **Novo fluxo de trabalho**.

4. A página "Escolher um workflow" mostra uma seleção de modelos de workflow recomendados. Pesquise por "swift".

5. Filtre a seleção de fluxos de trabalho clicando em **Integração contínua**.

6. No fluxo de trabalho "Swift", clique em **Configurar**.

7. Edite o fluxo de trabalho conforme necessário. Por exemplo, altere o ramo no qual o fluxo de trabalho será executado.

8. Clique em **Confirmar alterações**.

O arquivo de fluxo de trabalho `swift.yml` é adicionado ao diretório `.github/workflows` do seu repositório.

## Especificando uma versão do Swift

Para usar uma versão pré-instalada específica do Swift em um executor hospedado no GitHub, use a ação `swift-actions/setup-swift`. Essa ação localiza uma versão específica do Swift do cache de ferramentas no executor e adiciona os binários necessários a `PATH`. Estas alterações persistirão para o restante de um trabalho. Para obter mais informações, consulte a ação [`swift-actions/setup-swift`](https://github.com/marketplace/actions/setup-swift).

Se você estiver usando um executor auto-hospedado, precisará instalar as versões desejadas do Swift e adicioná-las a `PATH`.

Os exemplos abaixo demonstram o uso da ação `swift-actions/setup-swift`.

### Usando várias versões do Swift

Você pode configurar seu trabalho para usar várias versões do Swift em uma matriz.

```yaml copy

# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.
# São fornecidas por terceiros e regidas por
# termos de serviço, política de privacidade e suporte separados
# online.

# O GitHub recomenda fixar ações em um SHA de commit.
# Para obter uma versão mais recente, você precisará atualizar o SHA.
# Você também pode fazer referência a uma marca ou branch, mas a ação pode ser alterada sem aviso.

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@v6
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test
```

### Usando uma única versão específica do Swift

Você pode configurar seu trabalho para usar uma só versão específica do Swift, como `5.3.3`.

```yaml copy
# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.
# São fornecidas por terceiros e regidas por
# termos de serviço, política de privacidade e suporte separados
# online.
steps:
  - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
    with:
      swift-version: "5.3.3"
  - name: Get swift version
    run: swift --version # Swift 5.3.3
```

## Criar e testar seu código

Você pode usar os mesmos comandos usados localmente para criar e testar seu código usando o Swift. Este exemplo demonstra como usar `swift build` e `swift test` em um trabalho:

```yaml copy
# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub.
# São fornecidas por terceiros e regidas por
# termos de serviço, política de privacidade e suporte separados
# online.
steps:
  - uses: actions/checkout@v6
  - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
    with:
      swift-version: "5.3.3"
  - name: Build
    run: swift build
  - name: Run tests
    run: swift test
```