Skip to content

Commit 76fafcc

Browse files
committed
Build swift project in action
1 parent 6029dd5 commit 76fafcc

File tree

2 files changed

+45
-26
lines changed

2 files changed

+45
-26
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Build Swift Project
2+
3+
inputs:
4+
checkout-scheme:
5+
description: The schema passed to utils/update-checkout
6+
required: true
7+
8+
runs:
9+
using: "composite"
10+
steps:
11+
- name: Install dependencies
12+
run: brew install ninja sccache
13+
- uses: actions/checkout@v4
14+
with:
15+
repository: swiftlang/swift
16+
path: swift-project/swift
17+
- name: Update checkout
18+
run: utils/update-checkout --clone --scheme $CHECKOUT_SCHEME
19+
working-directory: ./swift-project/swift
20+
env:
21+
CHECKOUT_SCHEME: ${{ inputs.checkout-scheme }}
22+
- name: Build toolchain
23+
run: |
24+
utils/build-script --skip-build-benchmarks \
25+
--swift-darwin-supported-archs "$(uname -m)" \
26+
--release --swift-disable-dead-stripping \
27+
--bootstrapping=hosttools \
28+
--skip-build
29+
working-directory: ./swift-project/swift
30+
- name: Build llvm
31+
run: |
32+
ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64
33+
working-directory: ./swift-project/swift
34+
- name: Build swift-frontend
35+
run: |
36+
ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 swift-frontend
37+
working-directory: ./swift-project/swift
38+
- name: Create symbolic links to build directories
39+
run: |
40+
mkdir -p build/Default
41+
ln -s ../Ninja-ReleaseAssert/swift-macosx-arm64 build/Default/swift
42+
ln -s ../Ninja-ReleaseAssert/llvm-macosx-arm64 build/Default/llvm
43+
working-directory: ./swift-project

.github/workflows/swift.yml

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,33 +14,9 @@ jobs:
1414
runs-on: macos-26
1515

1616
steps:
17-
- name: Install dependencies
18-
run: brew install ninja sccache
19-
- uses: actions/checkout@v4
20-
with:
21-
repository: swiftlang/swift
22-
path: swift-project/swift
23-
- run: utils/update-checkout --clone --scheme release/6.2
24-
working-directory: ./swift-project/swift
25-
- name: Cache toolchain build
26-
uses: actions/cache@v4
17+
- uses: ./.github/actions/build-swift-project-macos
2718
with:
28-
path: swift-project/build
29-
key: swift-project-build-6.2-Ninja-Release-${{ runner.os }}
30-
- name: Build toolchain
31-
run: |
32-
utils/build-script --skip-build-benchmarks \
33-
--swift-darwin-supported-archs "$(uname -m)" \
34-
--release --swift-disable-dead-stripping \
35-
--skip-build \
36-
--bootstrapping=hosttools
37-
ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 swift
38-
working-directory: ./swift-project/swift
39-
- run: |
40-
mkdir -p build/Default
41-
ln -s ../Ninja-ReleaseAssert/swift-macosx-arm64 build/Default/swift
42-
ln -s ../Ninja-ReleaseAssert/llvm-macosx-arm64 build/Default/llvm
43-
working-directory: ./swift-project
19+
checkout-scheme: release/6.2
4420
- uses: actions/checkout@v4
4521
with:
4622
path: Compute

0 commit comments

Comments
 (0)