Skip to content

Commit 4612a39

Browse files
Test runtime-only example dependency view
1 parent 10ca7e9 commit 4612a39

1 file changed

Lines changed: 68 additions & 12 deletions

File tree

.github/workflows/test.yml

Lines changed: 68 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -204,24 +204,80 @@ jobs:
204204
echo "SwiftSyntax cache hit: ${{ steps.swiftsyntax-prebuilts.outputs.cache-hit }}"
205205
echo "SwiftSyntax prebuilts path: ${{ steps.swiftsyntax-prebuilts.outputs.prebuilts-path }}"
206206
find "${{ steps.swiftsyntax-prebuilts.outputs.prebuilts-path }}" -maxdepth 3 -type f | sort
207-
swift package --verbose ${SWIFT_PACKAGE_FLAGS} --package-path Examples/ActorOnWebWorker resolve
208-
find Examples/ActorOnWebWorker/.build/prebuilts -maxdepth 5 -print 2>/dev/null | sort || true
209-
find Examples/ActorOnWebWorker/.build -name workspace-state.json -print -exec sed -n '1,240p' {} \; || true
210-
cd Examples/ActorOnWebWorker
211207
212-
swift build --verbose ${SWIFT_PACKAGE_FLAGS} --build-system native \
213-
--swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1_threads:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1-threads}}" \
214-
--product MyApp -c release \
215-
-Xswiftc -static-stdlib \
216-
-Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor \
217-
-Xlinker --export-if-defined=__main_argc_argv 2>&1 | tee prebuilt-warmup.log
208+
runtime_view="$RUNNER_TEMP/JavaScriptKitRuntimeOnly"
209+
rm -rf "$runtime_view"
210+
cp -R "$GITHUB_WORKSPACE" "$runtime_view"
211+
rm -rf "$runtime_view/.git"
212+
213+
cat > "$runtime_view/Package.swift" <<'EOF'
214+
// swift-tools-version:6.2
215+
216+
import CompilerPluginSupport
217+
import PackageDescription
218+
219+
let package = Package(
220+
name: "JavaScriptKit",
221+
platforms: [
222+
.macOS(.v13),
223+
.iOS(.v13),
224+
.tvOS(.v13),
225+
.watchOS(.v6),
226+
.macCatalyst(.v13),
227+
],
228+
products: [
229+
.library(name: "JavaScriptKit", targets: ["JavaScriptKit"]),
230+
.library(name: "JavaScriptEventLoop", targets: ["JavaScriptEventLoop"]),
231+
.plugin(name: "PackageToJS", targets: ["PackageToJS"]),
232+
],
233+
dependencies: [
234+
.package(url: "https://github.com/swiftlang/swift-syntax", "600.0.0"..<"604.0.0")
235+
],
236+
targets: [
237+
.target(
238+
name: "JavaScriptKit",
239+
dependencies: ["_CJavaScriptKit", "BridgeJSMacros"],
240+
exclude: ["Runtime"],
241+
swiftSettings: [
242+
.enableExperimentalFeature("Extern"),
243+
]
244+
),
245+
.target(name: "_CJavaScriptKit"),
246+
.macro(
247+
name: "BridgeJSMacros",
248+
dependencies: [
249+
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
250+
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
251+
]
252+
),
253+
.target(
254+
name: "JavaScriptEventLoop",
255+
dependencies: ["JavaScriptKit", "_CJavaScriptEventLoop"]
256+
),
257+
.target(name: "_CJavaScriptEventLoop"),
258+
.plugin(
259+
name: "PackageToJS",
260+
capability: .command(
261+
intent: .custom(verb: "js", description: "Convert a Swift package to a JavaScript package")
262+
),
263+
path: "Plugins/PackageToJS/Sources"
264+
),
265+
]
266+
)
267+
EOF
268+
269+
swift package --verbose ${SWIFT_PACKAGE_FLAGS} --package-path "$runtime_view/Examples/ActorOnWebWorker" resolve
270+
find "$runtime_view/Examples/ActorOnWebWorker/.build/prebuilts" -maxdepth 5 -print 2>/dev/null | sort || true
271+
find "$runtime_view/Examples/ActorOnWebWorker/.build" -name workspace-state.json -print -exec sed -n '1,240p' {} \; || true
272+
273+
cd "$runtime_view/Examples/ActorOnWebWorker"
218274
219-
swift package --verbose ${SWIFT_PACKAGE_FLAGS} --build-system native \
275+
swift package --verbose ${SWIFT_PACKAGE_FLAGS} --build-system native --package JavaScriptKit \
220276
--swift-sdk "${SWIFT_SDK_ID_wasm32_unknown_wasip1_threads:-${SWIFT_SDK_ID:-wasm32-unknown-wasip1-threads}}" \
221277
plugin --allow-writing-to-package-directory \
222278
js --use-cdn --output ./Bundle -c release 2>&1 | tee plugin-build.log
223279
224-
if grep -E "Compiling (SwiftSyntax|SwiftBasicFormat|SwiftDiagnostics|SwiftParser|SwiftOperators|SwiftIfConfig|SwiftCompilerPlugin|SwiftSyntaxMacros|SwiftSyntaxMacroExpansion|SwiftCompilerPluginMessageHandling)" prebuilt-warmup.log plugin-build.log; then
280+
if grep -E "Compiling (SwiftSyntax|SwiftBasicFormat|SwiftDiagnostics|SwiftParser|SwiftOperators|SwiftIfConfig|SwiftCompilerPlugin|SwiftSyntaxMacros|SwiftSyntaxMacroExpansion|SwiftCompilerPluginMessageHandling)|SwiftSyntax-tool\.build|SwiftCompilerPlugin-tool\.build|SwiftSyntaxMacros-tool\.build" plugin-build.log; then
225281
echo "::error::SwiftSyntax was built from source instead of using prebuilts"
226282
exit 1
227283
fi

0 commit comments

Comments
 (0)