Skip to content

Integración continua (CI)

Para ejecutar comandos Tuist en tus flujos de trabajo de integración continua, necesitarás instalarlo en tu entorno CI.

La autenticación es opcional pero necesaria si desea utilizar funciones del lado del servidor como cache.

Las siguientes secciones ofrecen ejemplos de cómo hacerlo en diferentes plataformas CI.

Ejemplos#

Acciones de GitHub#

En Acciones de GitHub puedes utilizar Autenticación OIDC para una autenticación segura y sin secretos:

De Códigos
yaml
name: Build Application
on:
pull_request:
branches:
- main
push:
branches:
- main
permissions:
id-token: write
contents: read
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: jdx/mise-action@v2
- run: tuist auth login
- run: tuist setup cache
yaml
name: Build Application
on:
pull_request:
branches:
- main
push:
branches:
- main
permissions:
id-token: write
contents: read
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- run: brew install --formula [email protected]
- run: tuist auth login
- run: tuist setup cache
yaml
name: Build Application
on:
pull_request:
branches:
- main
push:
branches:
- main
env:
TUIST_TOKEN: ${{ secrets.TUIST_TOKEN }}
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: jdx/mise-action@v2
- run: tuist setup cache
yaml
name: Build Application
on:
pull_request:
branches:
- main
push:
branches:
- main
env:
TUIST_TOKEN: ${{ secrets.TUIST_TOKEN }}
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- run: brew install --formula [email protected]
- run: tuist setup cache
Oidc Setup

Antes de usar la autenticación OIDC, necesitas conectar tu repositorio GitHub a tu proyecto Tuist. Los permisos : id-token: write son necesarios para que OIDC funcione. Alternativamente, puedes usar un project token con el TUIST_TOKEN secreto.

Consejo

Recomendamos usar mise use --pin en tus proyectos Tuist para fijar la versión de Tuist en todos los entornos. El comando creará un archivo .tool-versions que contiene la versión de Tuist.

Xcode en la nube#

En Xcode Cloud, que utiliza los proyectos de Xcode como fuente de verdad, tendrás que añadir un script post-clone para instalar Tuist y ejecutar los comandos que necesites, por ejemplo tuist generate:

De Códigos
bash
#!/bin/sh
# Mise installation taken from https://mise.jdx.dev/continuous-integration.html#xcode-cloud
curl https://mise.run | sh # Install Mise
export PATH="$HOME/.local/bin:$PATH"
mise install # Installs the version from .mise.toml
# Runs the version of Tuist indicated in the .mise.toml file
mise exec -- tuist install --path ../ # `--path` needed as this is run from within the `ci_scripts` directory
mise exec -- tuist generate -p ../ --no-open # `-p` needed as this is run from within the `ci_scripts` directory
bash
#!/bin/sh
brew install --formula [email protected]
tuist generate
Authentication

Utilice un tokende proyecto estableciendo la variable de entorno TUIST_TOKEN en la configuración del flujo de trabajo de Xcode Cloud.

CircleCI#

En CircleCI puede utilizar Autenticación OIDC para una autenticación segura y sin secretos:

De Códigos
yaml
version: 2.1
jobs:
build:
macos:
xcode: "15.0.1"
steps:
- checkout
- run:
name: Install Mise
command: |
curl https://mise.jdx.dev/install.sh | sh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> $BASH_ENV
- run:
name: Install Tuist
command: mise install
- run:
name: Authenticate
command: mise exec -- tuist auth login
- run:
name: Build
command: mise exec -- tuist setup cache
yaml
version: 2.1
jobs:
build:
macos:
xcode: "15.0.1"
environment:
TUIST_TOKEN: $TUIST_TOKEN
steps:
- checkout
- run:
name: Install Mise
command: |
curl https://mise.jdx.dev/install.sh | sh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> $BASH_ENV
- run:
name: Install Tuist
command: mise install
- run:
name: Build
command: mise exec -- tuist setup cache
Authentication

Antes de usar la autenticación OIDC, necesitas conectar tu repositorio GitHub a tu proyecto Tuist. Los tokens OIDC de CircleCI incluyen tu repositorio GitHub conectado, que Tuist utiliza para autorizar el acceso a tus proyectos. Alternativamente, puedes utilizar un project token con la variable de entorno TUIST_TOKEN.

Bitrise#

En Bitrise puede utilizar Autenticación OIDC para una autenticación segura y sin secretos:

De Códigos
yaml
workflows:
build:
steps:
- git-clone@8: {}
- script@1:
title: Install Mise
inputs:
- content: |
curl https://mise.jdx.dev/install.sh | sh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
- script@1:
title: Install Tuist
inputs:
- content: mise install
- get-identity-token@0:
inputs:
- audience: tuist
- script@1:
title: Authenticate
inputs:
- content: mise exec -- tuist auth login
- script@1:
title: Build
inputs:
- content: mise exec -- tuist setup cache
yaml
workflows:
build:
steps:
- git-clone@8: {}
- script@1:
title: Install Mise
inputs:
- content: |
curl https://mise.jdx.dev/install.sh | sh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
- script@1:
title: Install Tuist
inputs:
- content: mise install
- script@1:
title: Build
inputs:
- content: mise exec -- tuist setup cache
Authentication

Antes de usar la autenticación OIDC, necesitas conectar tu repositorio GitHub a tu proyecto Tuist. Los tokens OIDC de Bitrise incluyen tu repositorio GitHub conectado, que Tuist utiliza para autorizar el acceso a tus proyectos. Alternativamente, puedes usar un project token con la variable de entorno TUIST_TOKEN.

Codemagic#

En Codemagic, puedes añadir un paso adicional a tu flujo de trabajo para instalar Tuist:

De Códigos
yaml
workflows:
build:
name: Build
max_build_duration: 30
environment:
xcode: 15.0.1
vars:
TUIST_TOKEN: ${{ secrets.TUIST_TOKEN }}
scripts:
- name: Install Mise
script: |
curl https://mise.jdx.dev/install.sh | sh
mise install # Installs the version from .mise.toml
- name: Build
script: mise exec -- tuist setup cache
yaml
workflows:
build:
name: Build
max_build_duration: 30
environment:
xcode: 15.0.1
vars:
TUIST_TOKEN: ${{ secrets.TUIST_TOKEN }}
scripts:
- name: Install Tuist
script: |
brew install --formula [email protected]
- name: Build
script: tuist setup cache
Authentication

Cree un project token y añádalo como variable de entorno secreta denominada TUIST_TOKEN.