ci: install P4 from package #334
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To test 'git-p4' in the Linux Clang and GCC build jobs we used to
install the 'p4' and 'p4d' binaries by directly downloading those
binaries from a Perforce filehost. This has worked just fine ever
since we started using Travis CI [1], but during the last day or so
that filehost appeared to be gone: while its hostname still resolves,
the host doesn't seem to reply to any download request, it doesn't
even refuse the connection, and eventually our build jobs time out
[2].
Now, this might be just a temporary glitch, but I'm afraid that it
isn't. The "Helix Core Server Administrator Guide" [3] describes two
ways to install these binaries on Linux, and none of them mentions the
filehost that we've been downloading from in the past:
non-package installation: open the website's download page in your
web browser, select OS and platform, click on the download link,
and eventually you get a .tar.gz archive containing, among other
things, the necessary 'p4' and 'p4d' binaries.
Now, we could use the URL of this archive to download it in our CI
scripts with 'wget', but nobody said that that URL remains stable,
and we would still need to extract the archive and copy the
binaries to $PATH.
package installation for various distros, including Ubuntu 16.04
(i.e. the Ubuntu version used both in our Travis CI and Azure
Pipelines builds): add a package repository and its pubkey,
'apt-get update && apt-get install', and ready to go.
Let's install P4 from the package repository, because this approach
seems to be simpler and more future proof.
Note that we used to install an old P4 version (16.2) in the Linux
build jobs, but with this change we'll install the most recent version
available in the Perforce package repository (currently 19.1).
[1] 522354d (Add Travis CI support, 2015-11-27).
[2] https://travis-ci.org/git/git/jobs/581429927#L422
[3] https://www.perforce.com/manuals/p4sag/Content/P4SAG/chapter.install.html
Let's see whether this works on Azure Pipelines.