Summary:
This diff makes the following changes to improve workflow of making thirdparty changes:
- Allow specifying GitHub artifact IDs for thirdparty builds and their checksums in thirdparty_archives.yml instead of tags, e.g.
```
- os_type: ubuntu22.04
architecture: x86_64
compiler_type: gcc11
release_artifact_id: 1234567890
checksum_artifact_id: 1234567891
```
Artifact downloads are structured as a zip file containing archive.tar.gz/archive.tar.gz.sha256. We cache only the
extracted archive.tar.gz/archive.tar.gz.sha256, renamed as
github-artifact-RELEASE_ARTIFACT_ID.tar.gz/github-artifact-RELEASE_ARTIFACT_ID.tar.gz.sha256.
The build is extracted to /opt/yb-build/thirdparty/RELEASE_ARTIFACT_ID, and a symlink is created at
/opt/yb-build/thirdparty/yugabyte-db-thirdparty-v.... pointing to /opt/yb-build/thirdparty/RELEASE_ARTIFACT_ID
(this is needed because thirdparty binaries used in the build have this path hardcoded in rpath).
- Make thirdparty_tool be able to pull thirdparty builds from a thirdparty PR instead of scanning release tags, e.g.
```
./build-support/thirdparty_tool -u --thirdparty-pr 12345678
```
will generate thirdparty_archives.yml using artifacts from the latest version of PR #12345678 on the thirdparty repo.
Accessing artifacts requires a GitHub token to be set (either via the GITHUB_TOKEN environmental variable, or
in a file specified in the YB_GITHUB_TOKEN_FILE_PATH environmental variable); one of the two must be set when
building with artifacts from a thirdparty PR.
Some old linuxbrew handling code was also removed.
Jira: DB-14217
Test Plan:
Jenkins: compile only
Tested thirdparty_tool with and without the new `--thirdparty-pr` option, and tested local builds in both setups.
Reviewers: steve.varnau
Reviewed By: steve.varnau
Subscribers: ybase
Differential Revision: https://phorge.dev.yugabyte.com/D40118