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

Enable windows and macos builds in CI #660

Merged
merged 5 commits into from
Aug 25, 2023
Merged

Conversation

cbgbt
Copy link
Contributor

@cbgbt cbgbt commented Aug 23, 2023

Issue #, if available:
Closes: #349
Closes: #347
Closes: #663

Description of changes:

    github: run CI on windows
    
    This also disables Rust incremental builds in the CI for a few reasons:
    * Incremental builds need a lot of disk space, which we need to protect
      for Windows builds.
    * Only the first invocation for each cache key is stored, so the delta
      between incremental builds grows larger over time.
    
    See https://github.com/dtolnay/rust-toolchain/issues/26 for more
    details.
    tough: always use unix-style paths in clean_name
    
    Using `std::path::Path` to manipulate `Url` paths only has the correct
    behavior on unix systems where the properties of the paths are nearly
    identical.
    
    This change moves to using unix-style path manipulation regardless of
    platform.
    
    It also adds a utility for safely creating filesystem paths based on
    `Url` paths for both unix and windows (which is complicated by drive
    lettering in absolute paths).
    Refrain from using docker for integration testing
    
    Github actions on Windows do not allow running Linux containers. In
    order to run the same CI on Windows as Linux, we compile toxic HTTP
    services at test time.
    github: run CI on macos
    integ: use retries when applying toxics
    
    The forked noxious-server takes a little longer to start on MacOS. Using
    retries ensures we keep trying until the server is ready.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This also disables Rust incremental builds in the CI for a few reasons:
* Incremental builds need a lot of disk space, which we need to protect
  for Windows builds.
* Only the first invocation for each cache key is stored, so the delta
  between incremental builds grows larger over time.

See dtolnay/rust-toolchain#26 for more
details.
Using `std::path::Path` to manipulate `Url` paths only has the correct
behavior on unix systems where the properties of the paths are nearly
identical.

This change moves to using unix-style path manipulation regardless of
platform.

It also adds a utility for safely creating filesystem paths based on
`Url` paths for both unix and windows (which is complicated by drive
lettering in absolute paths).
@cbgbt cbgbt marked this pull request as ready for review August 23, 2023 20:47
Github actions on Windows do not allow running Linux containers. In
order to run the same CI on Windows as Linux, we compile toxic HTTP
services at test time.
The forked noxious-server takes a little longer to start on MacOS. Using
retries ensures we keep trying until the server is ready.
@cbgbt cbgbt changed the title Enable windows builds in CI Enable windows and macos builds in CI Aug 24, 2023
@cbgbt cbgbt linked an issue Aug 24, 2023 that may be closed by this pull request
# https://github.com/oguzbilgener/noxious/pull/14
.PHONY: noxious
noxious:
cargo install --locked --git https://github.com/cbgbt/noxious.git --tag v1.0.5
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we add a tracking issue to make sure we don't forget about this fork.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, I opened one here: #671

@cbgbt
Copy link
Contributor Author

cbgbt commented Aug 25, 2023

Thanks @chipsenkbeil for help with chipsenkbeil/typed-path#8, which made this much easier than it could have been.

@cbgbt cbgbt merged commit 1f14fb8 into awslabs:develop Aug 25, 2023
9 checks passed
@cbgbt cbgbt deleted the windows-ci branch August 25, 2023 05:46
@webern webern mentioned this pull request Nov 7, 2023
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.

Add macos to Continuous Integration add windows to continuous integration tuftool: support windows
3 participants