持续集成 (CI)
要在你的持续集成工作流中运行 Tuist 命令,需要在 CI 环境中安装它。
认证是可选的,但如果你想使用服务器端功能(如
以下部分提供了在不同 CI 平台上执行此操作的示例。
GitHub Actions
Section titled “GitHub Actions”在 GitHub Actions 上,你可以使用
name: Build Applicationon: 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 cachename: Build Applicationon: 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 cachename: Build Applicationon: 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 cachename: Build Applicationon: 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 cacheXcode Cloud
Section titled “Xcode Cloud”在 Xcode Cloud 中,它使用 Xcode 项目作为源数据,你需要添加一个克隆后脚本来安装 Tuist 并运行你需要的命令,例如 tuist generate:
#!/bin/sh
# Mise installation taken from https://mise.jdx.dev/continuous-integration.html#xcode-cloudcurl https://mise.run | sh # 安装 Miseexport PATH="$HOME/.local/bin:$PATH"
mise install # 从 .mise.toml 安装版本
# 运行 .mise.toml 文件中指定的 Tuist 版本mise exec -- tuist install --path ../ # `--path` 是必需的,因为这是从 `ci_scripts` 目录中运行的mise exec -- tuist generate -p ../ --no-open # `-p` 是必需的,因为这是从 `ci_scripts` 目录中运行的#!/bin/sh
tuist generateCircleCI
Section titled “CircleCI”在 CircleCI 上,你可以使用
version: 2.1jobs: 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 cacheversion: 2.1jobs: 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 cacheBitrise
Section titled “Bitrise”在 Bitrise 上,你可以使用
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 cacheworkflows: 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 cacheCodemagic
Section titled “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 # 从 .mise.toml 安装版本 - name: Build script: mise exec -- tuist setup cacheworkflows: 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