Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A re-usable static SDK compilation workflow #3019

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

rnro
Copy link
Contributor

@rnro rnro commented Dec 6, 2024

A re-usable static SDK compilation workflow

Motivation:

We would like to offer the ability to opt-in to CI coverage for compilation against the Linux static SDK.

Modifications:

Introduce a workflow which will install a Swift snapshot and Linux SDK
and test the repository builds against it.

The script which sets up the VM will install snapshots and SDKs for
either branch or released-version snapshots. They can be specified as:

  • a specific version string
  • the 'latest' version, the script attempts to find the most recent
    version enumerated on swift.org with both SDK and toolchain available
  • the most recent snapshot for the specified branch name enumerated on
    swift.org with both SDK and toolchain available

At the moment the script should work on ubuntu and amazonlinux OSes,
this can be expanded in the future.

The current matrix covers testing building on Ubuntu Jammy for the main
branch and latest released Swift version (6.0.2) and enables it on our periodic CI runs.

See https://github.com/apple/swift-nio/actions/runs/12234697852/job/34124432584?pr=3019 for an example of this workflow in action.

Result:

Increased CI coverage

@rnro rnro force-pushed the static_sdk_workflow branch 8 times, most recently from 8994714 to 13c8812 Compare December 9, 2024 11:29
Motivation:

We would like to offer the ability to opt-in to CI coverage for compilation against the Linux static SDK.

Modifications:

Introduce a workflow which will install a Swift snapshot and Linux SDK
and test the repository builds against it.

The script which sets up the VM will install snapshots and SDKs for
either branch or released-version snapshots. They can be specified as:
- a specific version string
- the 'latest' version, the script attempts to find the most recent
  version enumerated on swift.org with both SDK and toolchain available
- the most recent snapshot for the specified branch name enumerated on
  swift.org with both SDK and toolchain available

At the moment the script should work on ubuntu and amazonlinux OSes,
this can be expanded in the future.

The current matrix covers testing building on Ubuntu Jammy for the main
branch and latest released Swift version (6.0.2).

Result:

Increased CI coverage
@rnro rnro force-pushed the static_sdk_workflow branch from 13c8812 to 177639d Compare December 9, 2024 13:29
@rnro rnro added the semver/none No version bump required. label Dec 9, 2024
@rnro rnro changed the title WIP A re-usable static SDK compilation workflow Dec 9, 2024
@rnro rnro marked this pull request as ready for review December 9, 2024 13:37
@rnro rnro requested a review from FranzBusch December 9, 2024 14:00
"swift":[
{
"name":"latest-release Jammy",
"swift_version":"6.0.2",
Copy link
Member

Choose a reason for hiding this comment

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

Is this outdated as of today since 6.0.3 got released?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver/none No version bump required.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants