# Integración continua (CI) {#continuous-integration-ci}
Para ejecutar comandos Tuist en tus flujos de trabajo de [integración
continua](https://en.wikipedia.org/wiki/Continuous_integration), 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 {#examples}
### Acciones de GitHub {#github-actions}
En [Acciones de GitHub](https://docs.github.com/en/actions) puedes utilizar
Autenticación OIDC para una autenticación segura y sin secretos:
::: grupo de códigos
```yaml [OIDC (Mise)]
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 [OIDC (Homebrew)]
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 tuist@x.y.z
- run: tuist auth login
- run: tuist setup cache
```
```yaml [Project token (Mise)]
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 [Project token (Homebrew)]
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 tuist@x.y.z
- run: tuist setup cache
```
:::
::: info 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 {#xcode-cloud}
En [Xcode Cloud](https://developer.apple.com/xcode-cloud/), que utiliza los
proyectos de Xcode como fuente de verdad, tendrás que añadir un script
[post-clone](https://developer.apple.com/documentation/xcode/writing-custom-build-scripts#Create-a-custom-build-script)
para instalar Tuist y ejecutar los comandos que necesites, por ejemplo `tuist
generate`:
::: grupo de códigos
```bash [Mise]
#!/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 {#runs-the-version-of-tuist-indicated-in-the-misetoml-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 [Homebrew]
#!/bin/sh
brew install --formula tuist@x.y.z
tuist generate
```
:::
::: info AUTHENTICATION
Utilice un
tokende proyecto estableciendo la variable de entorno `TUIST_TOKEN` en
la configuración del flujo de trabajo de Xcode Cloud.
:::
### CircleCI {#circleci}
En [CircleCI](https://circleci.com) puede utilizar
Autenticación OIDC para una autenticación segura y sin secretos:
::: grupo de códigos
```yaml [OIDC (Mise)]
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 [Project token (Mise)]
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
```
:::
::: info 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 {#bitrise}
En [Bitrise](https://bitrise.io) puede utilizar
Autenticación OIDC para una autenticación segura y sin secretos:
::: grupo de códigos
```yaml [OIDC (Mise)]
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 [Project token (Mise)]
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
```
:::
::: info 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 {#codemagic}
En [Codemagic](https://codemagic.io), puedes añadir un paso adicional a tu flujo
de trabajo para instalar Tuist:
::: grupo de códigos
```yaml [Mise]
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 [Homebrew]
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 tuist@x.y.z
- name: Build
script: tuist setup cache
```
:::
::: info AUTHENTICATION
Cree un
project token y añádalo como variable de entorno secreta denominada
`TUIST_TOKEN`.
:::