-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
major deploy tidy #3158
major deploy tidy #3158
Conversation
casperdcl
commented
Jan 15, 2020
•
edited
Loading
edited
- remove duplication of PyPI build (was repeated in build stage and deploy stage)
- remove duplication of Snapcraft build (was repeated in build stage and deploy stage)
- fix Snap stable channel not updating #3152 missing snap stable <- master deployment
- remove deploy stage in favour of conditional deployments on build stages (as per binary packages)
- skip package deployment (but still build) on cron jobs & pull requests
- references
- https://docs.travis-ci.com/user/deployment#conditional-releases-with-on
- https://docs.travis-ci.com/user/environment-variables
@efiop I think this is mergeable (the wonderful thing being there's no way to fully test without merging into master and tagging) |
@casperdcl Need to be careful about it, I will take a look at it a bit later today. Thank you 🙂 |
@@ -3,8 +3,16 @@ | |||
set -e | |||
|
|||
if [[ $TRAVIS_OS_NAME == "osx" && $TRAVIS_OSX_IMAGE != "xcode8.3" ]]; then |
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.
Not sure about this osx logic - is it still required?
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.
@casperdcl Good catch! Not required anymore, it was a leftover from the older days.
exit 2 | ||
fi | ||
|
||
# ensure at least one positional arg exists |
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.
what's the reason behind this check, @casperdcl ?
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.
travis' deploy.file
might not exist. This is a convenient way to check
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.
@casperdcl Still don't understand what it is for. What is deploy.file
?
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.
Got it. It is because of globs passed to it.
@casperdcl snap job now takes 19!!! minutes, which is more than 2x longer than other build jobs. Let's remove it and only deploy snap on tags, I don't think anyone needs dev branch snaps anyway. |
That looks like a one-off mistake. Looking at the travis log the job should've taken about 330 seconds (similar to all previous builds). Will try restarting. |
There we go... back down to 6min |
Thanks! 🙂 |
Ah I was about to push a little bit of tidying after the reviews. Will do in a new PR (incl fixing any issues if there are any) |
@casperdcl Please use |
- explains review concerns in iterative#3158
well the 2 review conversations were not yet marked as resolved... |
anyway happily seems to have all worked perfectly. Opened a very tiny #3173. |
@casperdcl Yeah, I should've been more careful with that. WIP is appreciated too though 😄 Thanks! |
@casperdcl Ok, what I didn't realize is that we broke the staging. Previously we:
Now we've lost 4 and if one package fails, pypi will be deployed anyways. So if one of the packages finds out that we are missing some import/dependency pypi will have that broken version already available for everyone to install. It is not a giant problem for now, but most likely I will change it back in the future. Please, let's be careful about these next time. |
@efiop the new steps are:
The old method was:
i.e. I intentionally dropped step 3. |
@casperdcl Yep, I understand that. Didn't read your description carefully enough when reviewing. 🙂 |
@efiop do you mean you prefer having an extra step? It's slower that way (due to rebuilding for deployment), involves duplication in In fact on occasion one deployment may fail (e.g. due to PyPI servers being temporarily down) which should not affect the other deployments. We can just restart the failing deployment manually. |
@casperdcl It being slower is not an issue, as it is only done during a release. Duplication is not nice, I agree, especially with snap, which has quite a bit more involved config than pypi that we used to have.
My concern is that one package will break and while we are fixing it, all other ones will be already released, which might cause a confusion of someone not being able to find a specific type of package.But thinking about it, it is not a big deal these days as the release is not fully automated and neither it will be, because we have to wait manual confirmation from homebrew/conda/choco guys anyway. So let's just keep it as is, it does look nicer now, no doubt about it 🙂 Thank you! |