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

CI: Pin "ubuntu-20.04" et al. #970

Merged
merged 5 commits into from
Nov 23, 2022
Merged

Conversation

ilammy
Copy link
Collaborator

@ilammy ilammy commented Nov 20, 2022

So recently the microsoft gods have decided that ubuntu-latest will mean ubuntu-22.04 for this repo. Sadly, we don't (officially) support Ubuntu 22.04 just yet because of OpenSSL 3.0 business. See:

Roll back CI to using ubuntu-20.04 explicitly. Pin other OSes while we're at it. Now if a build breaks because of the runner environment, this is likely because we have missed all the warnings and pleadings from GitHub, the runner is permanently unavailable and we must migrate. A different tradeoff compared to the current status quo when builds simply break one day because of an unexpected upgrade.

Anyways. Additionally, do test ubuntu-22.04 but only for one job, verifying Themis Core library with OpenSSL 3.0, setting all the necessary secret flags.

Checklist

  • Change is covered by automated tests
  • The coding guidelines are followed
  • Public API has proper documentation
  • Changelog is updated (don't need anything, right?)

Themis currently does not support OpenSSL 3.0 officially. Ubuntu 22.04
has made the switch and we can't support it in default configuration.
This is something to be worked on in Themis 0.15, I guess, but for that
we need a working CI first. Roll back "ubuntu-latest" to "ubuntu-20.04".
While we're at it, pin macOS environment as well, along with Windows.

This a tradeoff. Now we have a more stable environment, but when it
breaks -- due to GitHub dropping support -- we won't have an easy
way to roll it back.
Pass "matrix.os" value as environment variable to the scripts and
use it to decide whether to probe Homebrew for OpenSSL 3 paths.
This is necessary for OpenSSL 3.0 testing on Linux.
So here's the story. Themis does not (yet) support OpenSSL 3.0. There
is an experimental flag to enable support, but we haven't tested it all
too well. It probably works, but we aren't ready to sign off on that.
Thus the build fails with OpenSSL 3.0 by default.

Here's the situation with CI:

  - Ubuntu 20.04 has only OpenSSL 1.1.1 (which is the default)

  - Ubuntu 22.04 has only OpenSSL 3.0 (which is the default)

  - macOS can have both, using OpenSSL 1.1.1 if available,
    or failing the build otherwise.

Make sure to test all these expectations. Note that most of the jobs
are still running on Ubuntu 20.04 now. Ubuntu 22.04 is tested with
OpenSSL 3.0 only for the core library.
@ilammy ilammy added core Themis Core written in C, its packages infrastructure Automated building and packaging C-OpenSSL-3.0 Crypto provider: OpenSSL 3.0 labels Nov 20, 2022
@ilammy ilammy requested review from vixentael, Lagovas, shadinua and a team November 20, 2022 08:24
Update the Xcode to the current default for macOS 12. This is likely
to be outdated by the next year lol, but the previous versions have
served us well for years.
@ilammy
Copy link
Collaborator Author

ilammy commented Nov 20, 2022

Well, looks like Xcode project needs to be updated to work with Xcode 14 on macOS 12. Also, Rust build is broken due to newer Clippy being more clippy. Those will be resolved in separate PRs.

@ilammy ilammy added O-macOS 💻 Operating system: macOS O-Windows 🖥️ Operating system: Windows labels Nov 20, 2022
@vixentael
Copy link
Contributor

carthage builds are failing expectedly

@ilammy
Copy link
Collaborator Author

ilammy commented Nov 23, 2022

carthage builds are failing expectedly

Those are different errors than "the usual ones":

Testing failed:

	Multiple commands produce '/Users/runner/work/themis/themis/DerivedData/Build/Products/Debug-iphonesimulator/themis.framework/themis'
	Testing cancelled because the build failed.

** TEST FAILED **

But I don't have an immediate solution for this :(

@ilammy ilammy merged commit 4cc6d3f into cossacklabs:master Nov 23, 2022
@ilammy ilammy deleted the roll-back-to-20.04 branch November 23, 2022 08:53
radetsky pushed a commit that referenced this pull request Jan 19, 2023
* CI: Pin ubuntu-20.04

Themis currently does not support OpenSSL 3.0 officially. Ubuntu 22.04
has made the switch and we can't support it in default configuration.
This is something to be worked on in Themis 0.15, I guess, but for that
we need a working CI first. Roll back "ubuntu-latest" to "ubuntu-20.04".

* CI: Pin macos-12 and windows-2022

While we're at it, pin macOS environment as well, along with Windows.

This a tradeoff. Now we have a more stable environment, but when it
breaks -- due to GitHub dropping support -- we won't have an easy
way to roll it back.

* CI: Use brew only in macOS builds

Pass "matrix.os" value as environment variable to the scripts and
use it to decide whether to probe Homebrew for OpenSSL 3 paths.
This is necessary for OpenSSL 3.0 testing on Linux.

* CI: Test Themis Core on Ubuntu 22.04

So here's the story. Themis does not (yet) support OpenSSL 3.0. There
is an experimental flag to enable support, but we haven't tested it all
too well. It probably works, but we aren't ready to sign off on that.
Thus the build fails with OpenSSL 3.0 by default.

Here's the situation with CI:

  - Ubuntu 20.04 has only OpenSSL 1.1.1 (which is the default)

  - Ubuntu 22.04 has only OpenSSL 3.0 (which is the default)

  - macOS can have both, using OpenSSL 1.1.1 if available,
    or failing the build otherwise.

Make sure to test all these expectations. Note that most of the jobs
are still running on Ubuntu 20.04 now. Ubuntu 22.04 is tested with
OpenSSL 3.0 only for the core library.

* CI: Update Xcode DEVELOPER_DIR

Update the Xcode to the current default for macOS 12. This is likely
to be outdated by the next year lol, but the previous versions have
served us well for years.
radetsky pushed a commit that referenced this pull request Feb 13, 2023
* CI: Pin ubuntu-20.04

Themis currently does not support OpenSSL 3.0 officially. Ubuntu 22.04
has made the switch and we can't support it in default configuration.
This is something to be worked on in Themis 0.15, I guess, but for that
we need a working CI first. Roll back "ubuntu-latest" to "ubuntu-20.04".

* CI: Pin macos-12 and windows-2022

While we're at it, pin macOS environment as well, along with Windows.

This a tradeoff. Now we have a more stable environment, but when it
breaks -- due to GitHub dropping support -- we won't have an easy
way to roll it back.

* CI: Use brew only in macOS builds

Pass "matrix.os" value as environment variable to the scripts and
use it to decide whether to probe Homebrew for OpenSSL 3 paths.
This is necessary for OpenSSL 3.0 testing on Linux.

* CI: Test Themis Core on Ubuntu 22.04

So here's the story. Themis does not (yet) support OpenSSL 3.0. There
is an experimental flag to enable support, but we haven't tested it all
too well. It probably works, but we aren't ready to sign off on that.
Thus the build fails with OpenSSL 3.0 by default.

Here's the situation with CI:

  - Ubuntu 20.04 has only OpenSSL 1.1.1 (which is the default)

  - Ubuntu 22.04 has only OpenSSL 3.0 (which is the default)

  - macOS can have both, using OpenSSL 1.1.1 if available,
    or failing the build otherwise.

Make sure to test all these expectations. Note that most of the jobs
are still running on Ubuntu 20.04 now. Ubuntu 22.04 is tested with
OpenSSL 3.0 only for the core library.

* CI: Update Xcode DEVELOPER_DIR

Update the Xcode to the current default for macOS 12. This is likely
to be outdated by the next year lol, but the previous versions have
served us well for years.
radetsky added a commit that referenced this pull request Feb 15, 2023
* CI: Pin ubuntu-20.04

Themis currently does not support OpenSSL 3.0 officially. Ubuntu 22.04
has made the switch and we can't support it in default configuration.
This is something to be worked on in Themis 0.15, I guess, but for that
we need a working CI first. Roll back "ubuntu-latest" to "ubuntu-20.04".

* CI: Pin macos-12 and windows-2022

While we're at it, pin macOS environment as well, along with Windows.

This a tradeoff. Now we have a more stable environment, but when it
breaks -- due to GitHub dropping support -- we won't have an easy
way to roll it back.

* CI: Use brew only in macOS builds

Pass "matrix.os" value as environment variable to the scripts and
use it to decide whether to probe Homebrew for OpenSSL 3 paths.
This is necessary for OpenSSL 3.0 testing on Linux.

* CI: Test Themis Core on Ubuntu 22.04

So here's the story. Themis does not (yet) support OpenSSL 3.0. There
is an experimental flag to enable support, but we haven't tested it all
too well. It probably works, but we aren't ready to sign off on that.
Thus the build fails with OpenSSL 3.0 by default.

Here's the situation with CI:

  - Ubuntu 20.04 has only OpenSSL 1.1.1 (which is the default)

  - Ubuntu 22.04 has only OpenSSL 3.0 (which is the default)

  - macOS can have both, using OpenSSL 1.1.1 if available,
    or failing the build otherwise.

Make sure to test all these expectations. Note that most of the jobs
are still running on Ubuntu 20.04 now. Ubuntu 22.04 is tested with
OpenSSL 3.0 only for the core library.

* CI: Update Xcode DEVELOPER_DIR

Update the Xcode to the current default for macOS 12. This is likely
to be outdated by the next year lol, but the previous versions have
served us well for years.

Co-authored-by: Oleksii Lozovskyi <me@ilammy.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-OpenSSL-3.0 Crypto provider: OpenSSL 3.0 core Themis Core written in C, its packages infrastructure Automated building and packaging O-macOS 💻 Operating system: macOS O-Windows 🖥️ Operating system: Windows
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants