-
-
Notifications
You must be signed in to change notification settings - Fork 46.8k
Move CI tests from Travis to GitHub #3889
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
Move CI tests from Travis to GitHub #3889
Conversation
I am not a fan of pipenv... Pining dependencies are for projects that need reliable builds on a rigidly fixed set of dependencies. This is for production software than is heavily supported and must not break. I much prefer our dependencies to float, to always be the latest-and-greatest. Locking in pined dependencies runs contrary to that goal. If a new release of Python or one of our dependencies breaks our algorithms, I would like to know that as soon as our continuous integration is run. So, I am OK using pipenv if we never put version numbers in |
To avoid using version numbers, we just put an asterisk symbol like so: We will just add the Do you want to try this in a new branch? |
What if we continue to use requirements.txt and trust the cache if |
There's nothing to worry about if we are using requirements.txt as we will just be using If that is the case then please take a look at the workflow file in this PR which is basically a mirror of Travis configuration except for the Travis Buddy notification part which I think I can incorporate into our bot. Only if it ever gets accepted 😕 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome 😄
@cclauss this seems good to go, can you take a quick look at the changes? |
Co-authored-by: Christian Clauss <cclauss@me.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!!
* Add initial support for moving tests to GitHub * Add setup Python step in the workflow * Remove Travis CI config file * Fix GitHub action file for build to trigger on PR * Use Python 3.8 as tensorflow is not yet supported * Fix ciphers.hill_cipher doctest error * Fix: instagram crawler tests failing on GitHub actions * Fix floating point errors in doctest * Small change to test cache * Apply suggestions from code review Co-authored-by: Christian Clauss <cclauss@me.com> * Update instagram_crawler.py Co-authored-by: Christian Clauss <cclauss@me.com>
* Add initial support for moving tests to GitHub * Add setup Python step in the workflow * Remove Travis CI config file * Fix GitHub action file for build to trigger on PR * Use Python 3.8 as tensorflow is not yet supported * Fix ciphers.hill_cipher doctest error * Fix: instagram crawler tests failing on GitHub actions * Fix floating point errors in doctest * Small change to test cache * Apply suggestions from code review Co-authored-by: Christian Clauss <cclauss@me.com> * Update instagram_crawler.py Co-authored-by: Christian Clauss <cclauss@me.com>
* Add initial support for moving tests to GitHub * Add setup Python step in the workflow * Remove Travis CI config file * Fix GitHub action file for build to trigger on PR * Use Python 3.8 as tensorflow is not yet supported * Fix ciphers.hill_cipher doctest error * Fix: instagram crawler tests failing on GitHub actions * Fix floating point errors in doctest * Small change to test cache * Apply suggestions from code review Co-authored-by: Christian Clauss <cclauss@me.com> * Update instagram_crawler.py Co-authored-by: Christian Clauss <cclauss@me.com>
* Add initial support for moving tests to GitHub * Add setup Python step in the workflow * Remove Travis CI config file * Fix GitHub action file for build to trigger on PR * Use Python 3.8 as tensorflow is not yet supported * Fix ciphers.hill_cipher doctest error * Fix: instagram crawler tests failing on GitHub actions * Fix floating point errors in doctest * Small change to test cache * Apply suggestions from code review Co-authored-by: Christian Clauss <cclauss@me.com> * Update instagram_crawler.py Co-authored-by: Christian Clauss <cclauss@me.com>
Proposal for usingpipenv
:Goal: AddPipfile
andPipfile.lock
(keepingrequirements.txt
) and speed up our buildspipenv
is a tool which combines the power ofpip
andvenv
. My main goal for using this is only to speed up our builds. Why? Take a look at: https://github.com/dhruvmanila/algorithms-keeper/runs/1394249008?check_suite_focus=true. The entire virtual environment directory is cached and so we just skip the installing part which saves approximately 60 seconds in every run.What happens if we update our dependencies?The cache works based on a key and the key will depend on one of the dependency file which in this case can bePipfile
orPipfile.lock
(lock file is preferable). When we update any dependency, we update the lock file which means the key will change and thus the cache won't be found. In this case, the virtual environment will be created and cached again, thus updating the cache.@cclauss Please take a look at the proposal and if there are any doubts, do ask. DO NOT MERGE this PR yet.Move CI tests to GitHub Actions
Describe your change:
Checklist: