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:::: grupo 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 cacheyaml
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 cacheyaml
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 cacheyaml
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 elTUIST_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 Cloud
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:
::: grupo 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 {#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` directorybash
#!/bin/sh
brew install --formula [email protected]
tuist generate:::
AUTENTICACIÓN
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:::: grupo 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 cacheyaml
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:::
AUTENTICACIÓN
Antes de usar la autenticación OIDC, necesitas
conectar tu repositorio GitHub a tu proyecto Tuist. Los tokens OIDC deCircleCI 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 entornoTUIST_TOKEN. Bitrise
En Bitrise puede utilizar
Autenticación OIDC para una autenticación segura y sin secretos:::: grupo 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 cacheyaml
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:::
AUTENTICACIÓN
Antes de usar la autenticación OIDC, necesitas
conectar tu repositorio GitHub a tu proyecto Tuist. Los tokens OIDC deBitrise 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 entornoTUIST_TOKEN. Codemagic
En Codemagic, puedes añadir un paso adicional a tu flujo de trabajo para instalar Tuist:
::: grupo 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 cacheyaml
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:::
