lint fixes #262
Workflow file for this run
This file contains hidden or 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: BushelKit | |
on: | |
push: | |
branches-ignore: | |
- '*WIP' | |
env: | |
PACKAGE_NAME: BushelKit | |
jobs: | |
build-ubuntu: | |
name: Build on Ubuntu | |
runs-on: ubuntu-latest | |
container: swift:${{ matrix.swift-version }}-${{ matrix.os }} | |
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} | |
strategy: | |
matrix: | |
os: ["noble", "jammy"] | |
swift-version: ["6.0", "6.1"] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: brightdigit/swift-build@v1 | |
- uses: sersoft-gmbh/swift-coverage-action@v4 | |
id: coverage-files | |
with: | |
fail-on-empty-output: true | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
flags: swift-${{ matrix.swift-version }},ubuntu | |
verbose: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ${{ join(fromJSON(steps.coverage-files.outputs.files), ',') }} | |
build-macos: | |
name: Build on macOS | |
env: | |
PACKAGE_NAME: BushelKit | |
runs-on: ${{ matrix.runs-on }} | |
if: "!contains(github.event.head_commit.message, 'ci skip')" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# SPM Build Matrix | |
- runs-on: macos-15 | |
xcode: "/Applications/Xcode_16.1.app" | |
- runs-on: macos-15 | |
xcode: "/Applications/Xcode_16.3.app" | |
# iOS Build Matrix | |
- type: ios | |
runs-on: macos-15 | |
xcode: "/Applications/Xcode_16.1.app" | |
deviceName: "iPhone 16" | |
osVersion: "18.1" | |
- type: ios | |
runs-on: macos-15 | |
xcode: "/Applications/Xcode_16.3.app" | |
deviceName: "iPhone 16 Pro" | |
osVersion: "18.4" | |
# watchOS Build Matrix | |
- type: watchos | |
runs-on: macos-15 | |
xcode: "/Applications/Xcode_16.1.app" | |
deviceName: "Apple Watch Ultra 2 (49mm)" | |
osVersion: "11.1" | |
- type: watchos | |
runs-on: macos-15 | |
xcode: "/Applications/Xcode_16.3.app" | |
deviceName: "Apple Watch Ultra 2 (49mm)" | |
osVersion: "11.4" | |
- type: visionos | |
runs-on: macos-15 | |
xcode: "/Applications/Xcode_16.3.app" | |
deviceName: "Apple Vision Pro" | |
osVersion: "2.4" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build and Test | |
uses: brightdigit/swift-build@v1 | |
with: | |
scheme: ${{ env.PACKAGE_NAME }}-Package | |
type: ${{ matrix.type }} | |
xcode: ${{ matrix.xcode }} | |
deviceName: ${{ matrix.deviceName }} | |
osVersion: ${{ matrix.osVersion }} | |
# Common Coverage Steps | |
- name: Process Coverage | |
uses: sersoft-gmbh/swift-coverage-action@v4 | |
- name: Upload Coverage | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: ${{ matrix.type && format('{0}{1}', matrix.type, matrix.osVersion) || 'spm' }} | |
lint: | |
name: Linting | |
if: "!contains(github.event.head_commit.message, 'ci skip')" | |
runs-on: ubuntu-latest | |
needs: [build-ubuntu, build-macos] | |
env: | |
MINT_PATH: .mint/lib | |
MINT_LINK_PATH: .mint/bin | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache mint | |
id: cache-mint | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache | |
with: | |
path: | | |
.mint | |
Mint | |
key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }} | |
restore-keys: | | |
${{ runner.os }}-mint- | |
- name: Install mint | |
if: steps.cache-mint.outputs.cache-hit != 'true' | |
run: | | |
git clone https://github.com/yonaskolb/Mint.git | |
cd Mint | |
swift run mint install yonaskolb/mint | |
- name: Lint | |
run: ./Scripts/lint.sh | |
build-docc: | |
name: Build DocC | |
needs: [lint] | |
runs-on: ubuntu-latest | |
container: | |
image: swift:6.0-noble | |
volumes: | |
- ${{ github.workspace }}:/workspace | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache swift package modules | |
id: cache-spm-linux | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-spm | |
with: | |
path: .build | |
key: ${{ runner.os }}-${{ env.cache-name }}-${{ matrix.swift-version }}-${{ hashFiles('Package.resolved') }} | |
restore-keys: | | |
${{ runner.os }}-${{ env.cache-name }}-${{ matrix.swift-version }}- | |
${{ runner.os }}-${{ env.cache-name }}- | |
- name: Build DocC | |
run: swift package generate-documentation --platform "name=macos,version=15.1" --transform-for-static-hosting --hosting-base-path "swift-docc" --disable-indexing --enable-experimental-combined-documentation | |
- name: Package DocArchive | |
if: github.ref == 'refs/heads/main' | |
working-directory: .build/plugins/Swift-DocC/outputs | |
run: tar -cf BushelKit.doccarchive.tar BushelKit.doccarchive | |
- name: Upload a Build Artifact | |
uses: actions/upload-artifact@v4 | |
if: github.ref == 'refs/heads/main' | |
with: | |
overwrite: true | |
path: /workspace/.build/plugins/Swift-DocC/outputs/BushelKit.doccarchive.tar | |
retention-days: 30 | |
- uses: peter-evans/repository-dispatch@v3 | |
if: github.ref == 'refs/heads/main' | |
with: | |
token: ${{ secrets.PAT_TOKEN }} | |
repository: brightdigit/BushelDocs | |
event-type: docc-update | |
client-payload: '{"run_id": "${{ github.run_id }}"}' |