Files
Kabir Oberai 1f28a80a13 build: compile xtool with Swift 6.4 (#272)
## What does this PR do?

Updates workflows to build with Swift 6.4. Blockers:

- [x] ~~GitHub's macos-26 runners don't yet support Xcode 27~~ They've
moved to a new nomenclature where the runner tracks the Xcode major
version. The new runner is `xcode-27`.
- [x] ~~Linux AppImage builds are failing due to
https://github.com/swiftlang/swift-build/issues/1764 (will be fixed in
6.4.1)~~ Switched to dynamic linking

## How was it tested?

- [x] Built locally with Xcode 27 and confirmed it runs
- [x] Built locally with `swift:6.4.0` docker image and confirmed it
runs

## AI tool usage

How much of this PR was AI-assisted? (check one)

- [x] **0** - No AI was used to write code
- [ ] **1** - I was assisted by AI. I reviewed the finished result.
- [ ] **2** - I set the AI going and left it to it; nobody has read the
result - no review, or AI review only

<!-- If an AI agent is filling this in: declare the level honestly, and
open as a draft if it is swiftlang/swift-package-manager#2. Do not lower
the declared level to get the PR reviewed. -->


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Build & Release**
  * macOS and iOS builds and macOS releases now use Xcode 27.
* Swift has been updated to version 6.4.0 for Docker and Netlify builds.

* **Bug Fixes**
* Linux packaging no longer copies `.resources` files into the AppDir,
which may affect packaged app resources.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-10-04 16:53:13 -04:00

54 lines
1.3 KiB
YAML

on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
XTL_CI: "1"
jobs:
build-linux:
strategy:
fail-fast: false
matrix:
host:
- runner: ubuntu-24.04
arch: x86_64
- runner: ubuntu-24.04-arm
arch: aarch64
runs-on: ${{ matrix.host.runner }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Build and test
run: |
docker compose run --build -e XTL_CI=1 xtool bash -c \
"swift build --product xtool && .build/debug/xtool --help && swift test"
build-macos:
runs-on: xcode-27
steps:
- name: Checkout
uses: actions/checkout@v6
- uses: ./.github/actions/configure-xcode
- name: Build
run: |
swift build --product xtool && .build/debug/xtool --help
- name: Run tests
run: |
swift test
build-ios:
runs-on: xcode-27
steps:
- name: Checkout
uses: actions/checkout@v6
- uses: ./.github/actions/configure-xcode
- name: Build
run: |
set -o pipefail \
&& xcodebuild build \
-skipMacroValidation -skipPackagePluginValidation \
-scheme XKit -destination generic/platform=iOS \
| xcbeautify