From 5a06b211a6f1bf01632cab5de6eb3cfb245eb70f Mon Sep 17 00:00:00 2001 From: leogdion Date: Mon, 16 Jun 2025 23:38:49 +0000 Subject: [PATCH 1/6] adding workflow --- .github/SyntaxKit.yml | 118 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 .github/SyntaxKit.yml diff --git a/.github/SyntaxKit.yml b/.github/SyntaxKit.yml new file mode 100644 index 0000000..9265280 --- /dev/null +++ b/.github/SyntaxKit.yml @@ -0,0 +1,118 @@ +name: SwiftBuilder +on: + push: + branches-ignore: + - '*WIP' +env: + PACKAGE_NAME: SwiftBuilder +jobs: + build-ubuntu: + name: Build on Ubuntu + runs-on: ubuntu-latest + container: swiftlang/swift:nightly-${{ matrix.swift-version }}-${{ matrix.os }} + if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} + strategy: + matrix: + os: ["noble", "jammy"] + swift-version: ["6.1", "6.2"] + 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: SwiftBuilder + 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.4.app" + + # iOS Build Matrix + - type: ios + runs-on: macos-15 + xcode: "/Applications/Xcode_16.4.app" + deviceName: "iPhone 16 Pro" + osVersion: "18.4" + + # watchOS Build Matrix + - type: watchos + runs-on: macos-15 + xcode: "/Applications/Xcode_16.4.app" + deviceName: "Apple Watch Ultra 2 (49mm)" + osVersion: "11.4" + + - type: visionos + runs-on: macos-15 + xcode: "/Applications/Xcode_16.4.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 \ No newline at end of file From 0544722914123faac3277dd1eede24a7ff24ca48 Mon Sep 17 00:00:00 2001 From: leogdion Date: Mon, 16 Jun 2025 23:44:52 +0000 Subject: [PATCH 2/6] fixup! adding workflow --- .github/{ => workflows}/SyntaxKit.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{ => workflows}/SyntaxKit.yml (100%) diff --git a/.github/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml similarity index 100% rename from .github/SyntaxKit.yml rename to .github/workflows/SyntaxKit.yml From 79d3d14f4eeb20b565628454a852ee4a8762e1ac Mon Sep 17 00:00:00 2001 From: leogdion Date: Mon, 16 Jun 2025 23:45:58 +0000 Subject: [PATCH 3/6] downgrading to Swift 6.1 --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 2330040..eaf4934 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 6.2 +// swift-tools-version: 6.1 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription From de4b2a45090c71daf36ef5e9dbcb781629f123b2 Mon Sep 17 00:00:00 2001 From: Leo Dion Date: Mon, 16 Jun 2025 20:52:52 -0400 Subject: [PATCH 4/6] fixup! adding workflow --- .github/workflows/SyntaxKit.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml index 9265280..4219223 100644 --- a/.github/workflows/SyntaxKit.yml +++ b/.github/workflows/SyntaxKit.yml @@ -1,10 +1,10 @@ -name: SwiftBuilder +name: SyntaxKit on: push: branches-ignore: - '*WIP' env: - PACKAGE_NAME: SwiftBuilder + PACKAGE_NAME: SyntaxKit jobs: build-ubuntu: name: Build on Ubuntu @@ -33,7 +33,7 @@ jobs: build-macos: name: Build on macOS env: - PACKAGE_NAME: SwiftBuilder + PACKAGE_NAME: SyntaxKit runs-on: ${{ matrix.runs-on }} if: "!contains(github.event.head_commit.message, 'ci skip')" strategy: From a6d3e1dfa416a75f08215fecc9043839c1e129f8 Mon Sep 17 00:00:00 2001 From: Leo Dion Date: Mon, 16 Jun 2025 21:34:22 -0400 Subject: [PATCH 5/6] fixing ci --- .github/workflows/SyntaxKit.yml | 21 +++++++++++++++++---- Package.swift | 6 +++++- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.github/workflows/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml index 4219223..efa9c81 100644 --- a/.github/workflows/SyntaxKit.yml +++ b/.github/workflows/SyntaxKit.yml @@ -43,26 +43,39 @@ jobs: # SPM Build Matrix - runs-on: macos-15 xcode: "/Applications/Xcode_16.4.app" - + + # macOS Build Matrix + - type: macos + runs-on: macos-15 + xcode: "/Applications/Xcode_16.4.app" + # iOS Build Matrix - type: ios runs-on: macos-15 xcode: "/Applications/Xcode_16.4.app" deviceName: "iPhone 16 Pro" - osVersion: "18.4" + osVersion: "18.5" # watchOS Build Matrix - type: watchos runs-on: macos-15 xcode: "/Applications/Xcode_16.4.app" deviceName: "Apple Watch Ultra 2 (49mm)" - osVersion: "11.4" + osVersion: "11.5" + + # tvOS Build Matrix + - type: tvos + runs-on: macos-15 + xcode: "/Applications/Xcode_16.4.app" + deviceName: "Apple TV" + osVersion: "18.5" + # visionOS Build Matrix - type: visionos runs-on: macos-15 xcode: "/Applications/Xcode_16.4.app" deviceName: "Apple Vision Pro" - osVersion: "2.4" + osVersion: "2.5" steps: - uses: actions/checkout@v4 diff --git a/Package.swift b/Package.swift index eaf4934..1eac097 100644 --- a/Package.swift +++ b/Package.swift @@ -6,7 +6,11 @@ import PackageDescription let package = Package( name: "SyntaxKit", platforms: [ - .macOS(.v13) + .macOS(.v13), + .iOS(.v13), + .watchOS(.v6), + .tvOS(.v13), + .visionOS(.v1) ], products: [ // Products define the executables and libraries a package produces, making them visible to other packages. From 087441dcaf58ae052ba3788b4ac57b633b4d6272 Mon Sep 17 00:00:00 2001 From: leogdion Date: Mon, 16 Jun 2025 21:35:33 -0400 Subject: [PATCH 6/6] Update SyntaxKit.yml --- .github/workflows/SyntaxKit.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml index efa9c81..695b48b 100644 --- a/.github/workflows/SyntaxKit.yml +++ b/.github/workflows/SyntaxKit.yml @@ -17,7 +17,7 @@ jobs: swift-version: ["6.1", "6.2"] steps: - uses: actions/checkout@v4 - - uses: brightdigit/swift-build@v1 + - uses: brightdigit/swift-build@v1.1.1 - uses: sersoft-gmbh/swift-coverage-action@v4 id: coverage-files with: @@ -81,7 +81,7 @@ jobs: - uses: actions/checkout@v4 - name: Build and Test - uses: brightdigit/swift-build@v1 + uses: brightdigit/swift-build@v1.1.1 with: scheme: ${{ env.PACKAGE_NAME }}-Package type: ${{ matrix.type }} @@ -128,4 +128,4 @@ jobs: # cd Mint # swift run mint install yonaskolb/mint # - name: Lint - # run: ./Scripts/lint.sh \ No newline at end of file + # run: ./Scripts/lint.sh