Непрерывная интеграция (CI)
Чтобы выполнять команды Tuist в рабочих процессах непрерывной интеграции, вам нужно установить его в среду CI.
Аутентификация необязательна, но необходима, если вы хотите использовать функции на стороне сервера, такие как кэш.
В следующих разделах приведены примеры того, как это сделать на различных платформах CI.
Примеры#
Действия GitHub#
На GitHub Actions вы можете использовать OIDC-аутентификацию для безопасной аутентификации без секретов:
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
Прежде чем использовать аутентификацию OIDC, необходимо
подключить репозиторий GitHub к проекту Tuist. Разрешение : id-token: write необходимо для работы OIDC. В качестве альтернативы можно использовать
токен
проекта
с секретом TUIST_TOKEN.
Мы рекомендуем использовать команду mise use --pin в ваших проектах Tuist,
чтобы зафиксировать версию Tuist в разных средах. Команда создаст файл
.tool-versions, содержащий версию Tuist.
Облако Xcode#
В Xcode Cloud, который использует
проекты Xcode в качестве источника истины, вам нужно будет добавить скрипт
post-clone
для установки Tuist и запуска необходимых команд, например 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
Используйте токен
проекта,
установив переменную окружения TUIST_TOKEN в настройках рабочего процесса
Xcode Cloud.
CircleCI#
На CircleCI вы можете использовать аутентификацию OIDC для безопасной аутентификации без секретов:
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
Прежде чем использовать аутентификацию OIDC, необходимо
подключить репозиторий GitHub к проекту Tuist. OIDC-токены CircleCI
включают подключенный репозиторий GitHub, который Tuist использует для
авторизации доступа к вашим проектам. В качестве альтернативы вы можете
использовать токен
проекта
с помощью переменной окружения TUIST_TOKEN.
Bitrise#
На Bitrise вы можете использовать аутентификацию OIDC для безопасной аутентификации без секретов:
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
Прежде чем использовать аутентификацию OIDC, необходимо
подключить репозиторий GitHub к проекту Tuist. OIDC-токены Bitrise включают
подключенный репозиторий GitHub, который Tuist использует для авторизации
доступа к вашим проектам. В качестве альтернативы вы можете использовать токен
проекта
с помощью переменной окружения TUIST_TOKEN.
Codemagic#
В Codemagic вы можете добавить дополнительный шаг в рабочий процесс для установки 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
Создайте токен
проекта
и добавьте его в качестве секретной переменной окружения с именем TUIST_TOKEN.