I have implemented this and it almost works… The situation now is that my build has 3 jobs (for different platforms), and when building the tagged commit, only one of the 3 jobs (the first to deploy, actually) succeeds in deploying to GitHub releases, the other 2 fail with Faraday::ConnectionFailed
.
If I delete the GitHub release before triggering a build, it works and all 3 jobs upload their respective files.
Is that a bug ?
As a workaround I could maybe delete the release just before moving the tag and triggering the tagged build. This would also have the additional benefit of making sure that there are no leftover files attached, so all the files are guaranteed to come from the same commit.
Need to see the build to say anything.
Here’s the latest one: https://travis-ci.com/github/ogerardin/xpman/builds/174041736
I tried dpl v2, interestingly only 1 out of 3 jobs failed.
These look like unrelated network problems. In Windows, some invoked programs are also not found but this doesn’t seem to be affecting the result.
I suggest to restart the failed job(s) up to a few times – this will hopefully be enough for them to succeed at least once.
I have restarted the failing build several times and it never succeeded. It seems to time out now… https://travis-ci.com/github/ogerardin/xpman/jobs/357185668
Now the Mac build is consistently timing out on deploy --> https://travis-ci.com/github/ogerardin/xpman/jobs/360047379
Deploying is very fast when it works, so giving it more time wouldn’t change anything…
The log isn’t very helpful, there’s a bunch of “warning: already initialized constant” (all apparently related to OpenSSL) which I assume are not the reason it fails, and then “No output has been received in the last 10m0s”.
How can I debug this?
Okay, I confirmed the following workaround to work:
before_deploy:
- |
if [[ $TRAVIS_OS_NAME == "osx" ]]; then
sudo chown -R "$USER:$(id -g)" /Users/travis/.rvm/rubies/
rvm $(travis_internal_ruby) do gem uninstall openssl --all
fi
The deployment logic is at https://github.com/travis-ci/dpl/blob/master/lib/dpl/providers/releases.rb. You can fork that project, create a topic branch with debug logic and use it in your build by specifying the following in the deploy:
entry:
edge:
source: your_github_name/dpl
branch: your_topic_branch
In this case, however, the warnings and ruby - Fresh install of Rails and getting OpenSSL errors: "already initialized constant OpenSSL" - Stack Overflow suggest that Travis’ openssl
gem is incompatible with Homebrew’s OpenSSL – looks like the same general problem as Ruby Openssl: Python deployment fails on osx image. The incompatible gem happened to be not the default one so it was enough to uninstall it, rebuilding Ruby wasn’t needed.
Well done, it does work indeed! So the warnings were actually a hint of what was wrong.
How good it is to see all green
Thanks a lot.