snowdrop / booster-common

Common booster utilities
Apache License 2.0
0 stars 1 forks source link
bash release rhoar utilities

Scripts to process boosters

for-all-boosters

A script that operates on all boosters under the snowdrop organization that have the booster topic attached to them

Run for-all-boosters.sh -h for an overview of what the script can do and how to use it.

Note that some commands can have the opportunity to run a command after all the boosters are processed. This is accomplished using the postCmd variable when command line arguments are parsed. An example of this is the catalog command which calls postCmd="open_catalog_pr" when the command is initialized. This results in the open_catalog_pr function being called once when all the boosters are processed.

Dependencies

Examples

sync-descriptors.sh

A script that synchronizes YAML descriptors between booster branches. Here for historical reasons, shouldn't be needed anymore.

The script relies heavily on the mvn executable to determine the current version of the boosters (as well as the booster parent version) therefore the boosters need to be valid maven projects in order to the various operations to work. Furthermore, for the redhat branch, the local Red Hat maven repositories need to be setup correctly in order for maven to be able to resolve all the dependencies. If in a such cases a custom settings.xml file is used, then the environment variable
MAVEN_SETTINGS can be set to point to that file and all operations of this script will use that custom settings file.

src/update-pom.groovy

A Groovy script that checks the properties and updates those values with the corresponding dependency version in the upstream Spring Boot BOM.

An example invocation that includes all the available features would be:

groovy update-pom.groovy /path/to/pom.xml 1.5.13 "hibernate.version=,tomcat.version=8.5.29"

To see more information about the script invoke:

groovy update-pom.groovy

Important Notes on development

When developing new features for any of these scripts, it is very important to test both with single module and multi module projects. Multi-module Maven projects are often a source of bugs in the scripts

Steps to almost complete automated release

An ideal scenario would be to create a script that would do: spring-boot-release.sh 1.5.13 and perform all the required steps to release a new version of the Spring Boot runtime based on the specified target Spring Boot release.

Ideas