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