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

Set up testing and wheels for Windows on GitHub Actions #8131

Merged
merged 21 commits into from
Apr 30, 2020

Conversation

mehrdadn
Copy link
Contributor

@mehrdadn mehrdadn commented Apr 22, 2020

Why are these changes needed?

Lays the groundwork for testing and wheel building for Windows on GitHub Actions.

Related issue number

#631

Checks

  • I've run scripts/format.sh to lint the changes in this PR.
  • I've included any doc changes needed for https://docs.ray.io/en/latest/.
  • I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failure rates at https://ray-travis-tracker.herokuapp.com/.
  • Testing Strategy
    • Unit tests
    • Release tests
    • This PR is not tested (please justify below)

@AmplabJenkins
Copy link

Can one of the admins verify this patch?

@mehrdadn mehrdadn force-pushed the travis-refactor-4 branch from 830077a to 230754a Compare April 22, 2020 13:43
@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25044/
Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25045/
Test PASSed.

@mehrdadn mehrdadn force-pushed the travis-refactor-4 branch 5 times, most recently from 11a3353 to 41ee482 Compare April 22, 2020 22:13
@AmplabJenkins
Copy link

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25065/
Test FAILed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25067/
Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25066/
Test PASSed.

@mehrdadn mehrdadn force-pushed the travis-refactor-4 branch from 41ee482 to b773fab Compare April 22, 2020 22:48
@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25068/
Test PASSed.

@pcmoritz pcmoritz self-requested a review April 22, 2020 23:45
pip install flake8==3.7.7 flake8-comprehensions flake8-quotes==2.0.0 yapf==0.23.0 # Python linters
# readthedocs has an antiquated build env.
# This is a best effort to reproduce it locally to avoid doc build failures and hidden errors.
local filename
Copy link
Contributor

Choose a reason for hiding this comment

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

why is the below change needed? pip install seems to have worked before just fine

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The sed line I can probably remove (I think I added it a while ago to help me debug some stuff), but the filter_compatible_pip_requirements line is needed since the blist requirement doesn't work on on Windows as I mentioned below.

Copy link
Contributor

@pcmoritz pcmoritz Apr 26, 2020

Choose a reason for hiding this comment

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

I think we can remove it from the requirements-doc, because we are mocking it for read the docs anyways. Does that work?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not sure, I can give it a shot and see.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, I'm pretty sure it will work :)

}

# Takes a list of pip requirements and prints the ones that don't have known incompatibilities with the current system.
filter_compatible_pip_requirements() {
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's remove this. We can for example address it later by trying to remove the dependencies that are incompatible.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Wouldn't it just break something if I remove them from the requirements file? I think one of them was blist, I forget if there was another one. Should I just delete those lines from the requirements? I would've guessed it would break something for users.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25070/
Test PASSed.

ci/travis/ci.sh Outdated
esac
case "${HOSTTYPE}" in
x86_64) architecture=amd64;;
i?86*) architecture=i386;;
Copy link
Contributor

Choose a reason for hiding this comment

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

Why do we need to support that?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I guess we don't; I just added the case to make it clear there's a translation from HOSTTYPE and then this seemed like a cheap line to add afterwards. I can remove it.

@AmplabJenkins
Copy link

Merged build finished. Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25100/
Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25192/
Test PASSed.

@mehrdadn mehrdadn force-pushed the travis-refactor-4 branch from 944aefb to 1535bbd Compare April 26, 2020 20:17
.travis.yml Outdated

# random python tests TODO(ekl): these should be moved to bazel
- if [ $RAY_CI_PYTHON_AFFECTED == "1" ]; then python -m pytest -v --durations=5 --timeout=300 python/ray/experimental/test/async_test.py; fi

# bazel python tests. This should be run last to keep its logs at the end of travis logs.
- if [ $RAY_CI_PYTHON_AFFECTED == "1" ]; then ./ci/keep_alive bazel test --config=ci --test_tag_filters=-jenkins_only python/ray/tests/...; fi
- if [ $RAY_CI_TUNE_AFFECTED == "1" ]; then ./ci/keep_alive bazel test --config=ci --test_tag_filters=-jenkins_only python/ray/tune/...; fi
- if [ $RAY_CI_PYTHON_AFFECTED == "1" ]; then bazel_targets+=(python/ray/tests/...); fi
Copy link
Contributor

Choose a reason for hiding this comment

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

Why is this change needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It factors out and deduplicates the bazel test calls for maintainability.

Copy link
Contributor

@pcmoritz pcmoritz Apr 26, 2020

Choose a reason for hiding this comment

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

No, it makes it harder to read (and harder to copy and paste into a terminal if you want to run it).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hmm okie

fi
test -z "${set_x}" || set -x # restore set -x

# Deduplicate PATH
Copy link
Contributor

Choose a reason for hiding this comment

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

This should not be needed...

Copy link
Contributor Author

@mehrdadn mehrdadn Apr 26, 2020

Choose a reason for hiding this comment

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

What are you basing this on?

reload_env can (and I believe is) called multiple times in a single shell, and it needs to be idempotent. If you change PATH n times without deduplicating then you're going to build with Bazel n times. I don't think that's a good idea.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25200/
Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25203/
Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25205/
Test PASSed.

@mehrdadn mehrdadn marked this pull request as ready for review April 27, 2020 01:45
@mehrdadn mehrdadn force-pushed the travis-refactor-4 branch from dfc3235 to cb623f4 Compare April 28, 2020 15:02
@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25304/
Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25306/
Test PASSed.

.travis.yml Outdated
@@ -150,8 +122,7 @@ matrix:
- . ./ci/travis/ci.sh build
script:
- . ./ci/travis/ci.sh preload
# Explicitly sleep 60 seconds for logs to go through
- ./ci/travis/test-wheels.sh || { cat /tmp/ray/session_latest/logs/* && sleep 60 && false; }
- . ./ci/travis/ci.sh run
Copy link
Contributor

Choose a reason for hiding this comment

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

This should be . ./ci/travis/ci.sh test_wheels

.travis.yml Outdated
@@ -167,8 +138,7 @@ matrix:
- . ./ci/travis/ci.sh build
script:
- . ./ci/travis/ci.sh preload
# Explicitly sleep 60 seconds for logs to go through
- ./ci/travis/test-wheels.sh || { cat /tmp/ray/session_latest/logs/* && sleep 60 && false; }
- . ./ci/travis/ci.sh run
Copy link
Contributor

Choose a reason for hiding this comment

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

This should be . ./ci/travis/ci.sh test_wheels

.travis.yml Outdated
@@ -297,7 +267,7 @@ matrix:
- . ./ci/travis/ci.sh build
script:
- . ./ci/travis/ci.sh preload
- bazel test --config=ci //cpp:all --build_tests_only --test_output=streamed
- . ./ci/travis/ci.sh run
Copy link
Contributor

Choose a reason for hiding this comment

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

This should be . ./ci/travis/ci.sh test_cpp

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25341/
Test PASSed.

@AmplabJenkins
Copy link

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Ray-PRB/25343/
Test PASSed.

@pcmoritz pcmoritz merged commit 254b1ec into ray-project:master Apr 30, 2020
@mehrdadn mehrdadn deleted the travis-refactor-4 branch April 30, 2020 04:25
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.

4 participants