path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* Add a script to organize morpholgies into definitionsbaserock/franred/organize-morphologies-script_v2Francisco Redondo Marchena2014-08-181-0/+266
* Add script for testing releasesRichard Maw2014-08-051-0/+402
| | | | | This will deploy and run build tests on systems listed in the morphology passed as its first argument.
* Pass cluster morphology to release upload script.baserock/michaeldrake/release-upload-clusterMichael Drake2014-08-011-9/+12
| | | | This makes the release-upload script more versatile.
* Add --upload-build-artifacts settingLars Wirzenius2014-07-301-1/+13
* Join short lines into one line, for readabilityLars Wirzenius2014-07-301-2/+1
* Avoid running rsync if source file list is emptyLars Wirzenius2014-07-301-1/+4
* Refactor long method into smaller onesLars Wirzenius2014-07-301-19/+37
| | | | For comprehensibility.
* Add markers around list in debug logLars Wirzenius2014-07-301-0/+2
* Simplify logic and conditionLars Wirzenius2014-07-301-3/+2
| | | | | Avoiding a condition that has a negation tends to be a bit simpler for humans to understand.
* Refactor process_args to be clearerLars Wirzenius2014-07-301-9/+14
| | | | | Move stuff into new methods to make overall logic clearer and to avoid stuffing too much into each method.
* Add --upload-release-artifacts settingLars Wirzenius2014-07-301-13/+9
* Remove unnecessary leading _ from methodLars Wirzenius2014-07-301-3/+3
* Allow release deployments with system name ≠ deployment namebaserock/michaeldrake/ci-release-scriptsMichael Drake2014-07-301-24/+21
| | | | | There used to be a check that prevented deployments with names different to the system. I don't know why this was, but I don't think we need it.
* Fix releasing when no changes to the cache are requiredMichael Drake2014-07-301-6/+9
| | | | | Without this change the rsync and xargs commands will wait forever for input that will never arrive.
* Allow release scripts to be configured to only handle a subset of architecturesMichael Drake2014-07-302-1/+33
| | | | | | | | | | | We currently build all architectures at once during the release process, however for our CD pipeline we operate with one CD pipeline per architecture. This is not just useful for the CD pipeline work though, as it allows one organisation to handle releases for x86, where the infrastructure may be located in the cloud, and one organisation to handle ARM systems, which may be located in an office.
* Allow release-upload to be configured not to upload release imagesMichael Drake2014-07-301-3/+21
| | | | | | | | | For continuous artifact cache population, we don't care so much about the large disk images that we make available at release time. This patch allows omitting any of the configuration required to upload the release images to mean that we didn't want to upload them, and continue without doing so.
* Allow release-build to build subsystems of defined systemsMichael Drake2014-07-301-1/+8
* Write release images into release subdirectoryMichael Drake2014-07-301-2/+1
| | | | | | | | The script used to chdir into the release directory before running morph deploy. Unfortunately, this didn't work because deployments are run from the top of the definitons repository. So now the release directory is included in the path to be deployed.
* Remove old release scriptsLars Wirzenius2014-07-242-687/+0
* Chmod uploaded filesLars Wirzenius2014-07-241-1/+18
| | | | Suggested-by: Sam Thursfield
* Add new scripts for building, uploading releaseLars Wirzenius2014-07-244-0/+547
| | | | | | | | | | | | | | | | | | | | | | These scripts are a rewrite of scripts/ and scripts/distbuild-cluster. The biggest difference is that they split the tasks of building the things that are to be released, and uploading them to /, where combines both (and distbuild-cluster only builds chunk/stratum/system artifacts, not the release images). The new scripts are also configurable using command line options or a configuration file rather than requiring editing of the source. These changes will allow, for example, a CI job that builds a release, but doesn't upload it to The new scripts are coupled with a change to the release process, which will be documented as a change to the release process page on The 14.29 release of Baserock was done with slightly different versions of these scripts to make it feasible to upload things over multiple network connections.
* Tidy up the bits that the user is meant to edit.baserock/michaeldrake/fix-release-branchMichael Drake2014-07-141-3/+3
| | | | | Fix string quoting. Put all stuff that needs changed in angle brackets.
* Fix to use correct release branch.Michael Drake2014-07-141-2/+3
| | | | Replaces references to `master` with release tag name.
* Merge branch 'baserock/michaeldrake/distbuilt-runner-cli'Michael Drake2014-07-101-14/+43
|\ | | | | | | | | Reviewed-By: Richard Maw <> Reviewed-By: Lars Wirzenius <>
| * Allow use without editing the script, by passing params on cli.Michael Drake2014-07-101-14/+43
| | | | | | | | | | | | | | - Adds ability to pass cluster, ref and distbuild controller hosts on the command line. - Adds --help, and usage. - Prints the specified parameters out.
* | do-release: 3 small cleanupsSam Thursfield2014-07-081-4/+2
|/ | | | | Remove a comment that is no longer true, fix a formatting error, and add a docstring to a class that lacked one.
* do-release: take advantage of partial deploymentSam Thursfield2014-07-071-54/+33
| | | | | | | | | | | | | | | | | | The 'morph deploy' command now lets us deploy system images one at a time, so let's do that. This means that if all but one image is deployed successfully, on the next run the user just needs to deploy one further image. Also, since each deployment has a unique name in release.morph now, we can override the location and VERSION_LABEL fields instead of requiring the user to update them manually before each release. The release.morph cluster should now specify the *basename* of the image in the location field only. By basename, I mean the system name plus the appropriate extension (normally .tar or .img). The do-release script will then prepend the image path and the version label to get a filename. The release.morph cluster has been updated accordingly.
* do-release: Explain why xargs is not used in a commentSam Thursfield2014-07-041-1/+4
| | | | | This was suggested by Richard Maw and I forgot to fix up the branch 'sam/auto-release' before merging it.
* do-release: Make use of str.rstrip()Sam Thursfield2014-07-041-3/+1
| | | | | This was a review comment from Richard Maw which I forgot to include before merging branch 'sam/auto-release'
* do-release: Check access to configured upload servers when script startsSam Thursfield2014-07-021-0/+14
| | | | | If the release script is expected to be 'push-button' then we can't assume the user will be paying attention to error messages later on.
* do-release: Make artifacts public automaticallySam Thursfield2014-07-021-45/+169
| | | | | | | | | | | | | | | | | | | This makes it more likely that new artifacts and images might be publically available before they are officially announced, but I can't see that causing problems. Changes were required so that the script will only make public the files that are part of the release, and not do 'mv *' from a configured location into a publically shared location while unsupervised. The intermediate .tar file is now removed from the artifact server when the script completes. The script no longer outputs debug messages by default, because the really long SSH commandlines used to move files into place make this pretty hard to follow. Some extra status() calls have been added instead. There are a few other cosmetic changes in this commit.
* Make the release script check for the system name not "release"Adam Coldrick2014-06-181-4/+4
* Make 14.24 release changesRichard Maw2014-06-121-1/+1
* Move scripts into scripts/ directorySam Thursfield2014-06-104-0/+1238
They probably do not belong in definitions.git at all, but at least they are now in one place. In future they should move either into a separate baserock-utilities chunk, or into morph.git itself.