Release Automation Technical Documentation - reactome/Release GitHub Wiki
Release Automation Pipeline Documentation
The release automation pipeline consists of two parts
- Release script -- organizes the order of the release and invokes each module when needed
- Modules -- each module contains the logic and parameters for a specific release step
Release Script
The release script to initiate running of the release pipeline can be located on https://github.com/reactome/Release/tree/master/scripts/release
Release.pl
This script will run the release pipeline steps indicated when given a comma separated list and/or a range indicated by “..” between two numbers. The mapping of numbers to steps will be printed when running this script with no arguments.
Depending on the steps chosen, the script will prompt the user for information necessary to run those steps.
Usage:
- perl release.pl (prints usage instructions)
- perl release.pl 1 (runs the first step in the pipeline)
- perl release.pl 1,2,3 (runs steps one, two, and three in the pipeline)
- perl release.pl 1..5 (runs steps one through five in the pipeline)
- perl release.pl 1..5,7..9 (runs steps one through five followed by steps seven through nine – i.e. skip step six)
Modules
The modules which contain the logic for the release pipeline can be located on https://github.com/reactome/Release/tree/master/modules/GKB/Release/Config.pm.
Step.pm (abstract class using Moose)
The logic for a generic release step can be found in the Step.pm file. See https://github.com/reactome/Release/tree/master/modules/GKB/Release/Step.pm for more details and source code.
“Release Step”.pm (concrete class using Moose extending Step.pm)
These modules inherit from the Step.pm module and override the “run_commands” method to include the UNIX commands and calls to scripts necessary to run a particular step (e.g. UniProtUpdate.pm). These modules can be found on https://github.com/reactome/Release/tree/master/modules/GKB/Release/Steps.
Attributes Overrides to any of the attributes in Step.pm to be specific for a particular step.
Method Run_commands (overridden)
- Commands to be run for the specific step.
Config.pm
This module exports configuration variables to all other modules in the release pipeline.
See https://github.com/reactome/Release/tree/master/modules/GKB/Release/Config.pm for more details and source code.
Utils.pm
This module exports useful subroutines for preparing and running the release pipeline.
See https://github.com/reactome/Release/tree/master/modules/GKB/Release/Utils.pm for more details and source code.