Page MenuHomePhabricator

Add a script for setting up Debian build containers
ClosedPublic

Authored by jasonbcox on Mar 17 2020, 19:06.

Details

Summary

This script provides instructions for setting up necessary dependencies for CI builds.
The script will be run on a clean container that is abstracted away from the build process.

This script is not currently comprehensive for all builds, but runs build-master successfully.
This is a good starting point for migrating CI to containerized builds.

When matured, we will have multiple of these setup scripts for different types of containers
in order to support things like cross-platform builds.

Test Plan

Spin up a new container, run this script, then run tests like usual:

ABC_BUILD_NAME=build-werror ./contrib/teamcity/build-configurations.sh
ABC_BUILD_NAME=build-master ./contrib/teamcity/build-configurations.sh

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Maybe you want to check buster-backports

contrib/teamcity/setup-debian-buster.sh
80 ↗(On Diff #16987)

Downloading from the internet without even using a checksum and executing right away. What could go wong?

deadalnix requested changes to this revision.Mar 17 2020, 23:18
This revision now requires changes to proceed.Mar 17 2020, 23:18
contrib/teamcity/setup-debian-buster.sh
80 ↗(On Diff #16987)

Sadly this script isn't versioned and doesn't appear to be under source control from any LLVM repo that I can find. I've replaced it with the internals from that script that are relevant to us.

Make clang installation more robust

deadalnix added inline comments.
contrib/teamcity/setup-debian-buster.sh
71 ↗(On Diff #17001)

Providing the keys to the script rather than downloading them is preferable.

76 ↗(On Diff #17001)

Update alternative can probably do that, no?

This revision is now accepted and ready to land.Mar 18 2020, 16:51

Provide pubkeys for added package repos

contrib/teamcity/setup-debian-buster.sh
76 ↗(On Diff #17001)

Probably. This script was adapted from an old setup script we used for the build agents. I would need to experiment with this more, so will leave that for another patch.