Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
20ef1c6
ci: expand public validation and package admission
morajabi Sep 25, 2026
c64aaf3
ci: fix hosted runner assumptions
morajabi Sep 25, 2026
ebf1e67
ci: fix hosted checks and bot flow import
morajabi Sep 26, 2026
e9b835c
ci: use migrated clone for packed adapter flow
morajabi Sep 26, 2026
14e277e
macos: add green-main nightly tip release
morajabi Sep 26, 2026
98aded9
ci: harden tip publication and require packed flow
morajabi Sep 26, 2026
b42d6fc
macos: include triggered cli build in tip gate
morajabi Sep 26, 2026
7b7c55f
Merge remote-tracking branch 'origin/main' into codex/ci-confidence-e…
morajabi Sep 26, 2026
0359b65
apple: stabilize hosted timing tests
morajabi Sep 26, 2026
c2abdba
macos: make tip artifact retries immutable and recoverable
morajabi Sep 26, 2026
4ddd773
apple: retry transient ci package resolution failures
morajabi Sep 26, 2026
04cc6fa
apple: share package resolution retry with nightly tip
morajabi Sep 26, 2026
632c217
apple: make rtc recovery tests observe stable events
morajabi Sep 26, 2026
47b3143
apple: await retired rtc worker in watchdog test
morajabi Sep 26, 2026
693515a
macos: requalify main before tip tag publication
morajabi Sep 26, 2026
16c10bf
apple: make scripting completion test event-driven
morajabi Sep 26, 2026
e7d6c8a
apple: bound scripting completion test wait
morajabi Sep 26, 2026
2faecdc
apple: allow stop projection watchdog to be observed
morajabi Sep 26, 2026
158c804
ci: keep diagnostic upload outages from failing checks
morajabi Sep 26, 2026
9da5fbb
apple: stabilize rtc lifecycle and tooltip handoff tests
morajabi Sep 26, 2026
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
17 changes: 17 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# actionlint 1.7.10 predates GitHub's hosted xcode-27 label.
# https://github.com/actions/runner-images/blob/main/README.md
paths:
.github/workflows/apple-validation.yml:
ignore:
- 'label "xcode-27" is unknown'
.github/workflows/macos-tip-nightly.yml:
ignore:
- 'label "xcode-27" is unknown'
# These inherited workflow snippets are valid shell; actionlint cannot see
# step env declarations or intentionally literal jq/summary strings.
.github/workflows/cli-release.yml:
ignore:
- 'shellcheck reported issue in this script: SC2153:'
.github/workflows/server-deploy.yml:
ignore:
- 'shellcheck reported issue in this script: SC2016:'
126 changes: 126 additions & 0 deletions .github/workflows/apple-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: Apple Validation

on:
pull_request:
branches: [main]
push:
branches: [main]
workflow_dispatch:

permissions:
contents: read

concurrency:
group: apple-validation-${{ github.ref }}
cancel-in-progress: true

jobs:
contracts:
name: Apple source, scripts, and Swift protocol
runs-on: xcode-27
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- uses: oven-sh/setup-bun@v2
with:
bun-version: '1.4.0'
- run: bun install --frozen-lockfile
- name: Verify host and source contracts
run: |
test "$(sw_vers -productVersion | cut -d. -f1)" -ge 27
xcodebuild -version
xcrun swift --version
bash scripts/apple/run-ci-checks.sh --lint-only
- name: Test Apple build and release scripts
run: bun test scripts/apple scripts/macos
- name: Verify generated Swift protocol
run: |
cd scripts
bun run proto:generate-swift
cd ..
git diff --exit-code -- apple/InlineKit/Sources/InlineProtocol
test -z "$(git ls-files --others --exclude-standard apple/InlineKit/Sources/InlineProtocol)"

swift-main:
name: Swift packages (main)
runs-on: xcode-27
timeout-minutes: 75
steps:
- uses: actions/checkout@v6
- uses: actions/cache@v4
with:
path: ~/Library/Caches/org.swift.swiftpm
key: swiftpm-xcode27-${{ hashFiles('apple/**/Package.resolved') }}
- name: Build and test four main packages
env:
APPLE_CI_SKIP_SOURCE_CHECKS: '1'
APPLE_CI_REPORT_DIR: ${{ runner.temp }}/swift-main-reports
run: bash scripts/apple/run-ci-checks.sh InlineKit InlineUI InlineIOSUI InlineMacUI
- uses: actions/upload-artifact@v4
if: always()
continue-on-error: true
with:
name: swift-main-reports
path: ${{ runner.temp }}/swift-main-reports/
retention-days: 7

swift-utilities:
name: Swift packages (utilities)
runs-on: xcode-27
timeout-minutes: 75
steps:
- uses: actions/checkout@v6
- uses: actions/cache@v4
with:
path: ~/Library/Caches/org.swift.swiftpm
key: swiftpm-xcode27-${{ hashFiles('apple/**/Package.resolved') }}
- name: Verify macOS 27 host
run: test "$(sw_vers -productVersion | cut -d. -f1)" -ge 27
- name: Build and test eight utility packages
env:
APPLE_CI_SKIP_SOURCE_CHECKS: '1'
APPLE_CI_REPORT_DIR: ${{ runner.temp }}/swift-utility-reports
run: bash scripts/apple/run-ci-checks.sh InlineRealtimeCore InlineMacSidebarModel InlineThumbnailing InlineSyntaxHighlighting InlineMacScripting InlineMath MemojiKit InlineDevCompanion
- uses: actions/upload-artifact@v4
if: always()
continue-on-error: true
with:
name: swift-utility-reports
path: ${{ runner.temp }}/swift-utility-reports/
retention-days: 7

macos-app:
name: macOS app Debug and Release
runs-on: xcode-27
timeout-minutes: 75
steps:
- uses: actions/checkout@v6
- name: Build unsigned macOS app
env:
APPLE_CI_REPORT_DIR: ${{ runner.temp }}/macos-app-reports
run: bash scripts/apple/build-ci-app.sh macos
- uses: actions/upload-artifact@v4
if: always()
continue-on-error: true
with:
name: macos-app-build-logs
path: ${{ runner.temp }}/macos-app-reports/
retention-days: 7

ios-app:
name: iOS device app Debug and Release
runs-on: xcode-27
timeout-minutes: 75
steps:
- uses: actions/checkout@v6
- name: Build unsigned generic iOS device app
env:
APPLE_CI_REPORT_DIR: ${{ runner.temp }}/ios-app-reports
run: bash scripts/apple/build-ci-app.sh ios
- uses: actions/upload-artifact@v4
if: always()
continue-on-error: true
with:
name: ios-app-build-logs
path: ${{ runner.temp }}/ios-app-reports/
retention-days: 7
Loading
Loading