Skip to content

Disable mpa for docs #122

Disable mpa for docs

Disable mpa for docs #122

Workflow file for this run

name: CLI
on:
push:
branches:
- main
paths:
- "cli/TuistCacheEE"
- "cli/TuistCacheEE/**"
- "cli/Sources/**"
- "cli/Tests/**"
- "cli/Templates/**"
- "*.swift"
- ".github/workflows/cli.yml"
- "mise/tasks/cli/lint.sh"
- "mise.toml"
- "examples/xcode/**"
- "Tuist/**"
- ".xcode-version"
- "Package.swift"
- "Package.resolved"
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- "cli/TuistCacheEE"
- "cli/TuistCacheEE/**"
- "cli/Sources/**"
- "cli/Tests/**"
- "cli/Templates/**"
- "*.swift"
- ".github/workflows/cli.yml"
- "mise/tasks/cli/lint.sh"
- "mise.toml"
- "examples/xcode/**"
- "Tuist/**"
- ".xcode-version"
- "Package.swift"
- "Package.resolved"
permissions:
id-token: write
contents: read
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TUIST_ENABLE_CACHING: ${{ github.event.pull_request.head.repo.fork != true }}
concurrency:
group: cli-${{ github.head_ref }}
cancel-in-progress: true
jobs:
cli-lint:
name: Lint
runs-on: macos-26
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode_$(cat .xcode-version).app
- name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: .build
key: ${{ runner.os }}-cli-${{ hashFiles('.xcode-version') }}-${{ hashFiles('Package.resolved') }}
- uses: jdx/mise-action@v2
- name: Authenticate with Tuist
if: github.event.pull_request.head.repo.fork != true
run: tuist auth login
- name: Setup Tuist cache
if: github.event.pull_request.head.repo.fork != true
run: tuist setup cache
- name: Install Tuist dependencies
if: steps.cache-restore.outputs.cache-matched-key == ''
run: tuist install
- name: Lint
run: mise run cli:lint
- name: Save cache
id: cache-save
uses: actions/cache/save@v4
with:
path: .build
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
cli-spm-build:
name: SwiftPM Build
runs-on: macos-26
timeout-minutes: 30
if: github.event.pull_request.draft == false || github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode_$(cat .xcode-version).app
- name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: .build
key: ${{ runner.os }}-cli-${{ hashFiles('.xcode-version') }}-${{ hashFiles('Package.resolved') }}
- uses: jdx/mise-action@v2
- name: Authenticate with Tuist
if: github.event.pull_request.head.repo.fork != true
run: tuist auth login
- name: Setup Tuist cache
if: github.event.pull_request.head.repo.fork != true
run: tuist setup cache
- name: Install Tuist dependencies
if: steps.cache-restore.outputs.cache-matched-key == ''
run: tuist install
- name: Build
run: swift build --configuration debug --replace-scm-with-registry
- name: Save cache
id: cache-save
uses: actions/cache/save@v4
with:
path: .build
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
cli-cache:
name: Cache
runs-on: macos-26
timeout-minutes: 60
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode_$(cat .xcode-version).app
- name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: .build
key: ${{ runner.os }}-cli-${{ hashFiles('.xcode-version') }}-${{ hashFiles('Package.resolved') }}
- uses: jdx/mise-action@v2
- name: Authenticate with Tuist
if: github.event.pull_request.head.repo.fork != true
run: tuist auth login
- name: Setup Tuist cache
if: github.event.pull_request.head.repo.fork != true
run: tuist setup cache
- name: Install Tuist dependencies
if: steps.cache-restore.outputs.cache-matched-key == ''
run: tuist install
- name: Cache
run: tuist cache
- name: Save cache
id: cache-save
uses: actions/cache/save@v4
with:
path: .build
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
cli-unit-tests:
name: Unit Tests
runs-on: namespace-profile-default-macos
timeout-minutes: 30
if: github.event.pull_request.draft == false || github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode_$(cat .xcode-version).app
- name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: .build
key: ${{ runner.os }}-cli-${{ hashFiles('.xcode-version') }}-${{ hashFiles('Package.resolved') }}
- uses: jdx/mise-action@v2
- name: Authenticate with Tuist
if: github.event.pull_request.head.repo.fork != true
run: tuist auth login
- name: Setup Tuist cache
if: github.event.pull_request.head.repo.fork != true
run: tuist setup cache
- name: Install Tuist dependencies
if: steps.cache-restore.outputs.cache-matched-key == ''
run: tuist install
- name: Run tests
run: mise x -- tuist test TuistUnitTests
- name: Save cache
id: cache-save
uses: actions/cache/save@v4
with:
path: .build
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
cli-automation-acceptance-tests:
name: Automation Acceptance Tests
runs-on: macos-26
timeout-minutes: 60
if: github.event.pull_request.draft == false || github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode_$(cat .xcode-version).app
- name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: .build
key: ${{ runner.os }}-cli-${{ hashFiles('.xcode-version') }}-${{ hashFiles('Package.resolved') }}
- uses: jdx/mise-action@v2
- name: Authenticate with Tuist
if: github.event.pull_request.head.repo.fork != true
run: tuist auth login
- name: Setup Tuist cache
if: github.event.pull_request.head.repo.fork != true
run: tuist setup cache
- name: Install Tuist dependencies
if: steps.cache-restore.outputs.cache-matched-key == ''
run: tuist install
- name: Skip Xcode Macro Fingerprint Validation
run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
- name: Skip Xcode Package Validation
run: defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidation -bool YES
- name: Download Metal Toolchain
run: xcodebuild -downloadComponent MetalToolchain
- name: Run TuistAutomationAcceptanceTests
run: mise x -- tuist test TuistAutomationAcceptanceTests
- name: Save cache
id: cache-save
uses: actions/cache/save@v4
with:
path: .build
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
cli-dependencies-acceptance-tests:
name: Dependencies Acceptance Tests
runs-on: macos-26
timeout-minutes: 60
if: github.event.pull_request.draft == false || github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode_$(cat .xcode-version).app
- name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: .build
key: ${{ runner.os }}-cli-${{ hashFiles('.xcode-version') }}-${{ hashFiles('Package.resolved') }}
- uses: jdx/mise-action@v2
- name: Authenticate with Tuist
if: github.event.pull_request.head.repo.fork != true
run: tuist auth login
- name: Setup Tuist cache
if: github.event.pull_request.head.repo.fork != true
run: tuist setup cache
- name: Install Tuist dependencies
if: steps.cache-restore.outputs.cache-matched-key == ''
run: tuist install
- name: Skip Xcode Macro Fingerprint Validation
run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
- name: Skip Xcode Package Validation
run: defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidation -bool YES
- name: Set up new keychain
run: |
TMP_DIRECTORY=$(mktemp -d)
KEYCHAIN_PATH=$TMP_DIRECTORY/keychain.keychain
KEYCHAIN_PASSWORD=$(uuidgen)
security create-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security default-keychain -s $KEYCHAIN_PATH
security unlock-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH
- name: Run TuistDependenciesAcceptanceTests
run: mise x -- tuist test TuistDependenciesAcceptanceTests
- name: Save cache
id: cache-save
uses: actions/cache/save@v4
with:
path: .build
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
cli-generator-acceptance-tests:
name: Generator Acceptance Tests
runs-on: macos-26
timeout-minutes: 60
if: github.event.pull_request.draft == false || github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode_$(cat .xcode-version).app
- name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: .build
key: ${{ runner.os }}-cli-${{ hashFiles('.xcode-version') }}-${{ hashFiles('Package.resolved') }}
- uses: jdx/mise-action@v2
- name: Authenticate with Tuist
if: github.event.pull_request.head.repo.fork != true
run: tuist auth login
- name: Setup Tuist cache
if: github.event.pull_request.head.repo.fork != true
run: tuist setup cache
- name: Install Tuist dependencies
if: steps.cache-restore.outputs.cache-matched-key == ''
run: tuist install
- name: Skip Xcode Macro Fingerprint Validation
run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
- name: Skip Xcode Package Validation
run: defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidation -bool YES
- name: Download Metal Toolchain
run: xcodebuild -downloadComponent MetalToolchain
- name: Run TuistGeneratorAcceptanceTests
run: mise x -- tuist test TuistGeneratorAcceptanceTests
- name: Save cache
id: cache-save
uses: actions/cache/save@v4
with:
path: .build
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
cli-kit-acceptance-tests:
name: Kit Acceptance Tests
runs-on: macos-26
timeout-minutes: 60
if: github.event.pull_request.draft == false || github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode_$(cat .xcode-version).app
- name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: .build
key: ${{ runner.os }}-cli-${{ hashFiles('.xcode-version') }}-${{ hashFiles('Package.resolved') }}
- uses: jdx/mise-action@v2
- name: Authenticate with Tuist
if: github.event.pull_request.head.repo.fork != true
run: tuist auth login
- name: Setup Tuist cache
if: github.event.pull_request.head.repo.fork != true
run: tuist setup cache
- name: Install Tuist dependencies
if: steps.cache-restore.outputs.cache-matched-key == ''
run: tuist install
- name: Skip Xcode Macro Fingerprint Validation
run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
- name: Skip Xcode Package Validation
run: defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidation -bool YES
- name: Run TuistKitAcceptanceTests
run: mise x -- tuist test TuistKitAcceptanceTests
- name: Save cache
id: cache-save
uses: actions/cache/save@v4
with:
path: .build
key: ${{ steps.cache-restore.outputs.cache-primary-key }}