Skip to content

Add GitHub workflows, including testing linux - #5523

Draft
finagolfin wants to merge 1 commit into
swiftlang:mainfrom
finagolfin:droid
Draft

Add GitHub workflows, including testing linux#5523
finagolfin wants to merge 1 commit into
swiftlang:mainfrom
finagolfin:droid

Conversation

@finagolfin

Copy link
Copy Markdown
Member

This is a straight copy of the current swift-foundation workflows, after removing the different CMake job and irrelevant macOS config.

@finagolfin
finagolfin requested a review from a team as a code owner July 29, 2026 16:59
@finagolfin
finagolfin marked this pull request as draft July 29, 2026 17:00
Comment thread .github/workflows/pull_request.yml Outdated
uses: swiftlang/github-workflows/.github/workflows/swift_package_test.yml@0.0.13
with:
linux_swift_versions: '["nightly-main"]'
windows_swift_versions: '["nightly-main"]'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Windows, at least, is a lot more complicated here because it requires you to pre-build dependencies like curl/libxml via CMake before starting the SwiftPM build: https://github.com/swiftlang/swift-corelibs-foundation#building-swift-corelibs-foundation-on-windows

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I noticed that none of these jobs worked: 😉 what do you think about removing the curl/xml build for this GitHub workflow or adding those prebuilt dependencies on linux, as the current Jenkins CI probably does?

Alternately, I'm planning on switching the Android build over to using build-script to cross-compile those Foundation dependencies, so we may be able to use that here too.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I entirely follow - we can't remove the curl/xml dependency since the unit tests depend on them, and on Linux today when not built directly as part of the build process, prebuilt dependencies from the OS do get picked up. It looks like Linux had 2 test failures but it found libxml/curl fine. The problem for these is Windows where they neither get built in the SwiftPM build nor do they ship prebuilt in the OS so they're not present at all.

Looks like Android hit a separate issue related to being unable to find Block.h, will need to double check but IIRC this means it's missing a path to the dispatch include dir and it needs to be specified via env var to point at the SDK

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I entirely follow - we can't remove the curl/xml dependency since the unit tests depend on them

The idea would be to disable building FoundationXML/FoundationNetworking on Github CI alone and stop running their tests too.

on Linux today when not built directly as part of the build process, prebuilt dependencies from the OS do get picked up. It looks like Linux had 2 test failures but it found libxml/curl fine.

Missed that, I saw that all the others were build failures and simply assumed linux was too, but you're right that it wasn't.

The problem for these is Windows where they neither get built in the SwiftPM build nor do they ship prebuilt in the OS so they're not present at all.

The current Jenkins Windows CI builds everything from source: what we could do is have that build.ps1 script build these dependencies alone, then pass them into the SwiftPM build of this repo.

Looks like Android hit a separate issue related to being unable to find Block.h, will need to double check but IIRC this means it's missing a path to the dispatch include dir and it needs to be specified via env var to point at the SDK

Yeah, Android and presumably Wasm will need such dependencies built from source.

What I'll do for now is enable this GitHub SwiftPM build for linux alone, which will flag issues with pulls here much sooner than the three-plus hours into the 4-5 hour Jenkins CI runs of the full toolchain build that is currently run, then we can add more platforms to GitHub as we resolve those dependency issues.

@finagolfin finagolfin changed the title Add GitHub workflows, including Android and wasm Add GitHub workflows, including testing linux Aug 5, 2026
docs_check_enabled: false
format_check_enabled: false
unacceptable_language_check_enabled: false
api_breakage_check_enabled: false

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me know if you want any of these soundness checks enabled.

@finagolfin

Copy link
Copy Markdown
Member Author

One FileManager test and one CookieStorage test failing on linux, guessing related to some missing config. Will look into those two, then we can get this in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants