Skip to content

2.25.0.0-b406

@es1024 es1024 tagged this 02 Dec 19:12
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
Assets 2
Loading