Skip to content

feat(cli): add interactive wizards for fetch and init commands (#73) #398

feat(cli): add interactive wizards for fetch and init commands (#73)

feat(cli): add interactive wizards for fetch and init commands (#73) #398

Workflow file for this run

name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MISE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MISE_GITHUB_GITHUB_ATTESTATIONS: false
jobs:
lint:
name: Lint
runs-on: macos-15
steps:
- uses: actions/checkout@v6
with:
lfs: true
- uses: jdx/mise-action@v4
with:
experimental: true
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Check formatting (Swift + Markdown)
run: mise run format-check
- name: Lint (SwiftLint)
run: mise run lint
- name: Check llms.txt files are up to date
run: bash Scripts/generate-llms.sh && git diff --exit-code llms.txt llms-full.txt
build-macos:
name: Build & Test (macOS)
runs-on: macos-15
needs: lint
env:
DEVELOPER_DIR: "/Applications/Xcode_26.1.1.app/Contents/Developer"
steps:
- uses: actions/checkout@v6
with:
lfs: true
- name: Cache SPM dependencies
uses: actions/cache@v4
with:
path: .build
key: ${{ runner.os }}-xcode-26.1.1-spm-${{ hashFiles('Package.swift', 'Package.resolved') }}
restore-keys: |
${{ runner.os }}-xcode-26.1.1-spm-
- uses: jdx/mise-action@v4
with:
experimental: true
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Verify pkl installation
run: pkl --version
- name: Show Swift version
run: swift --version
- name: Build (including tests)
run: swift build --build-tests 2>&1 | xcsift
- name: Test
run: swift test --skip-build --parallel 2>&1 | xcsift
- name: Test with coverage
if: github.ref == 'refs/heads/main'
run: swift test --skip-build --parallel --enable-code-coverage 2>&1 | xcsift
- name: Generate coverage report
if: github.ref == 'refs/heads/main'
continue-on-error: true
run: ./Scripts/coverage.sh
build-linux:
name: Build & Test (Linux)
runs-on: ubuntu-latest
needs: lint
container:
image: swift:6.2.3-jammy
steps:
- name: Install dependencies
run: |
apt-get update
apt-get install -y git-lfs curl
git lfs install
- uses: actions/checkout@v6
with:
lfs: true
- name: Cache SPM dependencies
uses: actions/cache@v4
with:
path: .build
key: ${{ runner.os }}-swift-6.2.3-spm-${{ hashFiles('Package.swift', 'Package.resolved') }}
restore-keys: |
${{ runner.os }}-swift-6.2.3-spm-
- uses: jdx/mise-action@v4
with:
experimental: true
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Install tools (xcsift, pkl)
run: |
mise install xcsift pkl
mise where xcsift >> "$GITHUB_PATH"
mise where pkl >> "$GITHUB_PATH"
- name: Verify pkl installation
run: pkl --version
- name: Show Swift version
run: swift --version
- name: Build (including tests)
run: swift build --build-tests 2>&1 | xcsift
- name: Run tests
# Build tests separately to avoid hangs from concurrent build + test execution
run: swift test --skip-build --parallel 2>&1 | xcsift