Build tests installers; reorg#95
Conversation
Karmastic
left a comment
There was a problem hiding this comment.
I blame myself for not writing down all of my requirements and expectations - I know what I want but somehow you can't seem to read my mind. Let me know where my questions need clarification.
| # Test .deb installer | ||
|
|
||
| # Tag Source | ||
| mkdir -p ${HOME}/docker_test_resources |
There was a problem hiding this comment.
I don't want these tests to be part of the build - we need to do more comprehensive tests of the deb and rpm; the build should just generate the binaries / packages and not also do tests.
Please extract the testing process to separate script(s) that can be run manually against the pushed but not promoted packages.
| rm -f /dummyrepo/repodata/repomd.xml.asc | ||
| gpg -u rpm@algorand.com --detach-sign --armor /dummyrepo/repodata/repomd.xml | ||
|
|
||
| OLDRPM=$(ls -t /stuff/*.rpm|head -1) |
There was a problem hiding this comment.
Likewise, please extract the tests so they can be run independently and as part of a larger suite of verification tests against packages.
| # Tag Source | ||
| TAG=${BRANCH}-${FULLVERSION} | ||
| if [ ! -z "${SIGNING_KEY_ADDR}" ]; then | ||
| git tag -s -u "${SIGNING_KEY_ADDR}" ${TAG} -m "Genesis Timestamp: $(cat ./genesistimestamp.dat)" |
There was a problem hiding this comment.
We need to stop using the genesistimestamp for this - the timestamp no longer has real meaning (it's not the actual genesis timestamp - those are essentially hard-coded now for release builds). Maybe the branch or channel and version.
There was a problem hiding this comment.
ok. should there be any comment at all? output of date -u ?
There was a problem hiding this comment.
That's fine. Maybe more useful would be capturing some of the environment variables like CHANNEL, DEFAULT_NETWORK, DEFAULT_RELEASE_NETWORK
make DC_IP externally setable, and exit if not set or found. `goal node wait` instead of wait_for_progress.py push only specific tag
Karmastic
left a comment
There was a problem hiding this comment.
Looks good - I'll be working with it myself once it's checked in
Summary
Release build script tests package installers using Docker environments for Ubuntu 16.04, Ubuntu 18.04, and Centos 7.
RPM packaging has been improved by doing everything inside the Docker container in the host Ubuntu build environment. No separate Centos VM is needed.
Test Plan
The main build_release.sh script has been split into three parts so that the third part build_release_upload.sh can be run only during real builds and the other parts can be run many times to test the build process.
build_release_upload.sh is also only the staging upload, actual repo deploys to yum/rpm and apt/deb repos is a further step.
build scripts have been manually tested against current go-algorand/master