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:
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
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: tuist auth login
- run: tuist setup cache
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
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: tuist setup cache
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.
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:
#!/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
#!/bin/sh
tuist generate
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:
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
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
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:
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
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
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:
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
workflows:
build:
name: Build
max_build_duration: 30
environment:
xcode: 15.0.1
vars:
TUIST_TOKEN: ${{ secrets.TUIST_TOKEN }}
scripts:
- name: Install Tuist
script: |
- name: Build
script: tuist setup cache
Cree un
project token y añádalo como variable de entorno secreta denominada
TUIST_TOKEN.