Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 96 additions & 38 deletions .github/workflows/BushelKit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,59 +13,114 @@ jobs:
strategy:
matrix:
image:
- swift:6.0
- swift:6.1
- swift:6.2
- swiftlang/swift:nightly-6.2-noble
- swiftlang/swift:nightly-6.3-noble
container: ${{ matrix.image }}
steps:
- uses: actions/checkout@v4
- uses: brightdigit/swift-build@v1.4.0
- uses: brightdigit/swift-build@v1.5.0-beta.2
id: swift-build
- uses: sersoft-gmbh/swift-coverage-action@v4
if: steps.swift-build.outputs.contains-code-coverage == 'true'
id: coverage-files
with:
with:
fail-on-empty-output: true
- name: Set coverage flag
if: steps.swift-build.outputs.contains-code-coverage == 'true'
id: set-flag
run: echo "CODECOV_FLAGS=${MATRIX_IMAGE//\//-}" | sed 's/:/-/g' >> $GITHUB_ENV
env:
MATRIX_IMAGE: ${{ matrix.image }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
if: steps.swift-build.outputs.contains-code-coverage == 'true'
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
flags: ${{ env.CODECOV_FLAGS }}
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
files: ${{ join(fromJSON(steps.coverage-files.outputs.files), ',') }}
# build-windows:
# name: Build on Windows
# runs-on: ${{ matrix.runs-on }}
# strategy:
# fail-fast: false
# matrix:
# runs-on: [windows-2022, windows-2025]
# include:
# - swift-version: swift-6.2-release
# swift-build: 6.2-RELEASE
# - swift-version: swift-6.1-release
# swift-build: 6.1-RELEASE
# steps:
# - uses: actions/checkout@v4
# - uses: brightdigit/swift-build@v1.4.0
# with:
# windows-swift-version: ${{ matrix.swift-version }}
# windows-swift-build: ${{ matrix.swift-build }}
# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v5
# with:
# fail_ci_if_error: true
# flags: swift-${{ matrix.swift-version }},windows
# verbose: true
# token: ${{ secrets.CODECOV_TOKEN }}
# os: windows
# swift_project: BushelKit
build-windows:
name: Build on Windows
runs-on: ${{ matrix.runs-on }}
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
strategy:
fail-fast: false
matrix:
runs-on: [windows-2022, windows-2025]
include:
- swift-version: swift-6.2-release
swift-build: 6.2-RELEASE
- swift-version: swift-6.1-release
swift-build: 6.1-RELEASE
steps:
- uses: actions/checkout@v4
- uses: brightdigit/swift-build@v1.5.0-beta.2
id: swift-build
with:
windows-swift-version: ${{ matrix.swift-version }}
windows-swift-build: ${{ matrix.swift-build }}
- name: Upload coverage to Codecov
if: false
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
flags: swift-${{ matrix.swift-version }},windows
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
os: windows

build-android:
name: Build on Android
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
strategy:
fail-fast: false
matrix:
api-level: [28, 33, 34]
swift-version: ["6.2"]
steps:
- uses: actions/checkout@v4
- uses: brightdigit/swift-build@v1.5.0-beta.2
id: swift-build
with:
type: android
android-swift-version: ${{ matrix.swift-version }}
android-api-level: ${{ matrix.api-level }}
- name: Upload coverage to Codecov
if: steps.swift-build.outputs.contains-code-coverage == 'true'
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
flags: android-${{ matrix.api-level }},swift-${{ matrix.swift-version }}
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}

build-wasm:
name: Build on WASM
runs-on: ubuntu-latest
container: swift:6.2-jammy
if: false # Temporarily disabled for Windows/Android troubleshooting
strategy:
fail-fast: false
matrix:
wasm-type: [wasm, wasm-embedded]
steps:
- uses: actions/checkout@v4
- uses: brightdigit/swift-build@v1.5.0-beta.2
id: swift-build
with:
type: ${{ matrix.wasm-type }}
- name: Upload coverage to Codecov
if: steps.swift-build.outputs.contains-code-coverage == 'true'
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
flags: ${{ matrix.wasm-type }},swift-6.2
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}

build-macos:
name: Build on macOS
env:
Expand Down Expand Up @@ -137,20 +192,23 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Build and Test
uses: brightdigit/swift-build@v1.4.0
id: swift-build
uses: brightdigit/swift-build@v1.5.0-beta.2
with:
scheme: ${{ env.PACKAGE_NAME }}-Package
type: ${{ matrix.type }}
xcode: ${{ matrix.xcode }}
deviceName: ${{ matrix.deviceName }}
osVersion: ${{ matrix.osVersion }}
download-platform: ${{ matrix.download-platform || false }}

# Common Coverage Steps
- name: Process Coverage
if: steps.swift-build.outputs.contains-code-coverage == 'true'
uses: sersoft-gmbh/swift-coverage-action@v4

- name: Upload Coverage
if: steps.swift-build.outputs.contains-code-coverage == 'true'
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
Expand All @@ -160,7 +218,7 @@ jobs:
name: Linting
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
runs-on: ubuntu-latest
needs: [build-ubuntu, build-macos]
needs: [build-ubuntu, build-windows, build-android, build-wasm, build-macos]
env:
MINT_PATH: .mint/lib
MINT_LINK_PATH: .mint/bin
Expand Down
2 changes: 1 addition & 1 deletion .swift-format
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"reflowMultilineStringLiterals" : "never",
"respectsExistingLineBreaks" : true,
"rules" : {
"AllPublicDeclarationsHaveDocumentation" : false,
"AllPublicDeclarationsHaveDocumentation" : true,
"AlwaysUseLiteralForEmptyCollectionInit" : false,
"AlwaysUseLowerCamelCase" : true,
"AmbiguousTrailingClosureOverload" : true,
Expand Down
18 changes: 10 additions & 8 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,24 @@
{
"type": "swift",
"request": "launch",
"args": [],
"cwd": "${workspaceFolder:BushelKit}",
"name": "Debug bushel",
"program": "${workspaceFolder}/.build/debug/bushel",
"args": [],
"cwd": "${workspaceFolder}",
"preLaunchTask": "swift: Build Debug bushel",
"target": "bushel",
"configuration": "debug"
"stopOnEntry": false,
"terminal": "console"
},
{
"type": "swift",
"request": "launch",
"args": [],
"cwd": "${workspaceFolder:BushelKit}",
"name": "Release bushel",
"program": "${workspaceFolder}/.build/release/bushel",
"args": [],
"cwd": "${workspaceFolder}",
"preLaunchTask": "swift: Build Release bushel",
"target": "bushel",
"configuration": "release"
"stopOnEntry": false,
"terminal": "console"
}
]
}
Loading
Loading