Skip non-cache jobs #71
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Install | |
on: | |
push: | |
permissions: | |
contents: read | |
jobs: | |
install-cache: | |
name: Install with cache | |
runs-on: macos-15 | |
timeout-minutes: 50 | |
strategy: | |
matrix: | |
package: [ | |
# package-1-scm, | |
# package-1-registry, | |
# package-2-scm, | |
# package-2-registry, | |
package-3-scm, | |
package-3-registry, | |
package-4-scm, | |
package-4-registry, | |
] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: jdx/mise-action@v2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Restore cache | |
id: cache-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: | | |
${{ matrix.package }}/.build | |
key: ${{ runner.os }}-${{ hashFiles('*/Package.resolved') }}-${{ matrix.package }} | |
restore-keys: ${{ matrix.package }}/.build | |
- name: Log in to Tuist | |
run: tuist registry login | |
working-directory: ${{ matrix.package }} | |
env: | |
TUIST_CONFIG_TOKEN: ${{ secrets.TUIST_CONFIG_TOKEN }} | |
- name: Install with registry | |
working-directory: ${{ matrix.package }} | |
if: ${{ endsWith(matrix.package, '-registry') }} | |
run: swift package --replace-scm-with-registry resolve --verbose | |
- name: Install Swift package dependencies with source control | |
working-directory: ${{ matrix.package }} | |
if: ${{ endsWith(matrix.package, '-scm') }} | |
run: swift package resolve --verbose | |
- name: Save cache | |
id: cache-save | |
uses: actions/cache/save@v4 | |
with: | |
path: | | |
${{ matrix.package}}/.build | |
key: ${{ steps.cache-restore.outputs.cache-primary-key }} | |
# install: | |
# name: Install Swift packages | |
# runs-on: macos-15 | |
# timeout-minutes: 50 | |
# strategy: | |
# matrix: | |
# package: [ | |
# # package-1-scm, | |
# # package-1-registry, | |
# # package-2-scm, | |
# # package-2-registry, | |
# package-3-scm, | |
# package-3-registry, | |
# package-4-scm, | |
# package-4-registry, | |
# xcode-project-1-registry, | |
# xcode-project-1-scm, | |
# ] | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: jdx/mise-action@v2 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# - name: Log in to Tuist | |
# run: tuist registry login | |
# working-directory: ${{ matrix.package }} | |
# env: | |
# TUIST_CONFIG_TOKEN: ${{ secrets.TUIST_CONFIG_TOKEN }} | |
# - name: Install Swift package dependencies with registry | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ !startsWith(matrix.package, 'xcode-project') && endsWith(matrix.package, '-registry') }} | |
# run: swift package --replace-scm-with-registry resolve --verbose | |
# - name: Hyperfine Swift package dependencies with registry | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ !startsWith(matrix.package, 'xcode-project') && endsWith(matrix.package, '-registry') }} | |
# run: hyperfine --warmup 1 --prepare 'rm -rf ~/.swiftpm .build && swift package purge-cache' --runs 5 'swift package --replace-scm-with-registry resolve' --show-output | |
# - name: Resolve Swift package dependencies with registry and xcodebuild | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ startsWith(matrix.package, 'xcode-project') && endsWith(matrix.package, '-registry') }} | |
# env: | |
# TUIST_CONFIG_TOKEN: ${{ secrets.TUIST_CONFIG_TOKEN }} | |
# 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 | |
# security add-internet-password -a token \ | |
# -s tuist.dev \ | |
# -w $TUIST_CONFIG_TOKEN \ | |
# -r htps \ | |
# -U \ | |
# -T /usr/bin/security \ | |
# -T /usr/bin/codesign \ | |
# -T /usr/bin/xcodebuild \ | |
# -T /usr/bin/swift \ | |
# -T /Applications/Xcode_16.app/Contents/Developer/usr/bin/xcodebuild \ | |
# $KEYCHAIN_PATH | |
# xcodebuild -resolvePackageDependencies | |
# - name: Hyperfine Swift package dependencies registry and xcodebuild | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ startsWith(matrix.package, 'xcode-project') && endsWith(matrix.package, '-registry') }} | |
# run: hyperfine --warmup 1 --prepare 'rm -rf packages' --runs 5 'xcodebuild -resolvePackageDependencies -clonedSourcePackagesDirPath packages' --show-output | |
# - name: Install Swift package dependencies with source control and xcodebuild | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ startsWith(matrix.package, 'xcode-project') && endsWith(matrix.package, '-scm') }} | |
# run: xcodebuild -resolvePackageDependencies | |
# - name: Hyperfine Swift package dependencies source control and xcodebuild | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ startsWith(matrix.package, 'xcode-project') && endsWith(matrix.package, '-scm') }} | |
# run: hyperfine --warmup 1 --prepare 'rm -rf packages' --runs 5 'xcodebuild -resolvePackageDependencies -clonedSourcePackagesDirPath packages' --show-output | |
# - name: Install Swift package dependencies with source control | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ !startsWith(matrix.package, 'xcode-project') && endsWith(matrix.package, '-scm') }} | |
# run: swift package resolve --verbose | |
# - name: Hyperfine Swift package dependencies with source control | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ !startsWith(matrix.package, 'xcode-project') && endsWith(matrix.package, '-scm') }} | |
# run: hyperfine --warmup 1 --prepare 'rm -rf ~/.swiftpm .build && swift package purge-cache' --runs 5 'swift package resolve' --show-output | |
# install-swift-package-manager-main: | |
# name: Install with swift-package-manager@main | |
# runs-on: macos-15 | |
# timeout-minutes: 60 | |
# strategy: | |
# matrix: | |
# package: [ | |
# # package-1-scm, | |
# # package-1-registry, | |
# # package-2-scm, | |
# # package-2-registry, | |
# package-3-scm, | |
# package-3-registry, | |
# package-4-scm, | |
# package-4-registry, | |
# ] | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: actions/checkout@v4 | |
# with: | |
# repository: tuist/swift-package-manager | |
# path: swift-package-manager | |
# ref: workspace-state-actor | |
# - name: Restore cache | |
# id: cache-restore | |
# uses: actions/cache/restore@v4 | |
# with: | |
# path: | | |
# swift-package-manager/.build | |
# key: ${{ runner.os }}-v1-${{ hashFiles('swift-package-manager/Package.resolved') }} | |
# restore-keys: swift-package-manager/.build | |
# - name: Build Swift Package Manager | |
# working-directory: swift-package-manager | |
# run: swift build --arch x86_64 --configuration release | |
# - name: Save cache | |
# id: cache-save | |
# uses: actions/cache/save@v4 | |
# with: | |
# path: | | |
# swift-package-manager/.build | |
# key: ${{ steps.cache-restore.outputs.cache-primary-key }} | |
# - uses: jdx/mise-action@v2 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# - name: Create 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: Log in to Tuist | |
# run: tuist registry login | |
# working-directory: ${{ matrix.package }} | |
# env: | |
# TUIST_CONFIG_TOKEN: ${{ secrets.TUIST_CONFIG_TOKEN }} | |
# - name: Install Swift package dependencies with registry | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ endsWith(matrix.package, '-registry') }} | |
# env: | |
# TUIST_CONFIG_TOKEN: ${{ secrets.TUIST_CONFIG_TOKEN }} | |
# 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 | |
# security add-internet-password -a token \ | |
# -s tuist.dev \ | |
# -w $TUIST_CONFIG_TOKEN \ | |
# -r htps \ | |
# -U \ | |
# -T ../swift-package-manager/.build/release/swift-package \ | |
# $KEYCHAIN_PATH | |
# security set-internet-password-partition-list \ | |
# -a token \ | |
# -s tuist.dev \ | |
# -S "com.apple.swift-package,com.apple.security,com.apple.dt.Xcode,apple-tool:,apple:,codesign" \ | |
# -k $KEYCHAIN_PASSWORD $KEYCHAIN_PATH | |
# ../swift-package-manager/.build/release/swift-package --replace-scm-with-registry resolve --verbose | |
# - name: Hyperfine Swift package dependencies with registry | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ endsWith(matrix.package, '-registry') }} | |
# run: hyperfine --warmup 1 --prepare 'rm -rf ~/.swiftpm .build' --runs 5 '../swift-package-manager/.build/x86_64-apple-macosx/release/swift-package --replace-scm-with-registry resolve' --show-output | |
# - name: Install Swift package dependencies with source control | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ endsWith(matrix.package, '-scm') }} | |
# run: ../swift-package-manager/.build/release/swift-package resolve --verbose | |
# - name: Hyperfine Swift package dependencies with source control | |
# working-directory: ${{ matrix.package }} | |
# if: ${{ endsWith(matrix.package, '-scm') }} | |
# run: hyperfine --warmup 1 --prepare 'rm -rf ~/.swiftpm .build' --runs 5 '../swift-package-manager/.build/x86_64-apple-macosx/release/swift-package resolve' --show-output |