@@ -17,12 +17,12 @@ jobs:
1717
1818 job_test :
1919 name : Test
20- runs-on : ubuntu-latest
20+ runs-on : ["ghcr.io/cirruslabs/ ubuntu-runner-amd64:24.04", "runner_group_id:10"]
2121 needs : [diff_check]
2222 if : ${{ needs.diff_check.outputs.skip_ci != 'true' }}
2323 steps :
2424 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
25- - run : npm i -g corepack
25+ - run : corepack enable
2626 - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
2727 with :
2828 package-manager-cache : false
@@ -36,12 +36,12 @@ jobs:
3636
3737 job_lint :
3838 name : Lint
39- runs-on : ubuntu-latest
39+ runs-on : ["ghcr.io/cirruslabs/ ubuntu-runner-amd64:24.04", "runner_group_id:10"]
4040 needs : [diff_check]
4141 if : ${{ needs.diff_check.outputs.skip_ci != 'true' }}
4242 steps :
4343 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
44- - run : npm i -g corepack
44+ - run : corepack enable
4545 - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
4646 with :
4747 package-manager-cache : false
@@ -66,28 +66,49 @@ jobs:
6666 clang --version
6767 clang-format --version
6868
69- - name : Install Swiftly
69+ - name : Install Swiftly and Swift
7070 run : |
71- SWIFTLY_FILE="swiftly-$(uname -m).tar.gz"
72- curl -sL https://download.swift.org/swiftly/linux/swiftly-x86_64.tar.gz -o $SWIFTLY_FILE
73- tar zxf $SWIFTLY_FILE
71+ # Install Swift dependencies first
72+ sudo apt-get update
73+ sudo apt-get -y install libcurl4-openssl-dev libz3-dev libncurses-dev libedit-dev libxml2-dev
74+
75+ ARCH=$(uname -m)
76+ SWIFTLY_FILE="swiftly-${ARCH}.tar.gz"
77+ curl -sL "https://download.swift.org/swiftly/linux/swiftly-${ARCH}.tar.gz" -o "$SWIFTLY_FILE"
78+ tar zxf "$SWIFTLY_FILE"
7479
7580 ./swiftly init --quiet-shell-followup
7681 . "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh"
7782 hash -r
78- sudo apt-get -y install libcurl4-openssl-dev
83+
84+ # Install Swift 6.0 (compatible with SwiftLint 0.63.2)
85+ swiftly install 6.0
86+ swift --version
87+
88+ # Export Swift toolchain path for SwiftLint's SourceKit
89+ SWIFT_BIN=$(which swift)
90+ SWIFT_TOOLCHAIN=$(dirname $(dirname "$SWIFT_BIN"))
91+ SOURCEKIT_PATH=$(find "${SWIFT_TOOLCHAIN}" -name "libsourcekitdInProc.so" -print -quit 2>/dev/null)
92+ if [ -n "$SOURCEKIT_PATH" ]; then
93+ echo "LINUX_SOURCEKIT_LIB_PATH=$(dirname "$SOURCEKIT_PATH")" >> $GITHUB_ENV
94+ else
95+ echo "ERROR: libsourcekitdInProc.so not found under ${SWIFT_TOOLCHAIN}"
96+ exit 1
97+ fi
7998
8099 - name : Lint
81- run : yarn lint
100+ run : |
101+ . "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh"
102+ yarn lint
82103
83104 job_check_integrity :
84105 name : Check package integrity
85- runs-on : ubuntu-latest
106+ runs-on : ["ghcr.io/cirruslabs/ ubuntu-runner-amd64:24.04", "runner_group_id:10"]
86107 needs : [diff_check]
87108 if : ${{ needs.diff_check.outputs.skip_ci != 'true' }}
88109 steps :
89110 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
90- - run : npm i -g corepack
111+ - run : corepack enable
91112 - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
92113 with :
93114 package-manager-cache : false
@@ -102,16 +123,16 @@ jobs:
102123 run : yarn install
103124 - name : Check lock file integrity
104125 run : |
105- ["$(diff yarn.lock.initial yarn.lock)" -eq ""]
126+ [ "$(diff yarn.lock.initial yarn.lock)" = "" ]
106127
107128 job_build :
108129 name : Build
109- runs-on : ubuntu-latest
130+ runs-on : ["ghcr.io/cirruslabs/ ubuntu-runner-amd64:24.04", "runner_group_id:10"]
110131 needs : [diff_check]
111132 if : ${{ needs.diff_check.outputs.skip_ci != 'true' }}
112133 steps :
113134 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
114- - run : npm i -g corepack
135+ - run : corepack enable
115136 - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
116137 with :
117138 package-manager-cache : false
@@ -148,14 +169,14 @@ jobs:
148169
149170 job_type_check :
150171 name : Type Check Typescript 3.8
151- runs-on : ubuntu-latest
172+ runs-on : ["ghcr.io/cirruslabs/ ubuntu-runner-amd64:24.04", "runner_group_id:10"]
152173 needs : [job_build, diff_check]
153174 if : ${{ needs.diff_check.outputs.skip_ci != 'true' }}
154175 env :
155176 YARN_ENABLE_IMMUTABLE_INSTALLS : false
156177 steps :
157178 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
158- - run : npm i -g corepack
179+ - run : corepack enable
159180 - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
160181 with :
161182 package-manager-cache : false
@@ -181,12 +202,12 @@ jobs:
181202 run : yarn type-check
182203 job_circular_dep_check :
183204 name : Circular Dependency Check
184- runs-on : ubuntu-latest
205+ runs-on : ["ghcr.io/cirruslabs/ ubuntu-runner-amd64:24.04", "runner_group_id:10"]
185206 needs : [job_build, diff_check]
186207 if : ${{ needs.diff_check.outputs.skip_ci != 'true' }}
187208 steps :
188209 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
189- - run : npm i -g corepack
210+ - run : corepack enable
190211 - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
191212 with :
192213 package-manager-cache : false
@@ -210,7 +231,7 @@ jobs:
210231
211232 job_bundle :
212233 name : Bundle
213- runs-on : ubuntu-latest
234+ runs-on : ["ghcr.io/cirruslabs/ ubuntu-runner-amd64:24.04", "runner_group_id:10"]
214235 needs : [job_test, job_build, diff_check]
215236 if : ${{ needs.diff_check.outputs.skip_ci != 'true' }}
216237 strategy :
@@ -221,7 +242,7 @@ jobs:
221242 dev : [true, false]
222243 steps :
223244 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
224- - run : npm i -g corepack
245+ - run : corepack enable
225246 - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
226247 with :
227248 package-manager-cache : false
0 commit comments