Meego Wiki
Views

Release Infrastructure/BOSS/Standard workflow

From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Robogrator Process Launcer)
(Installing the standard_workflow_handler)
Line 61: Line 61:
** description
** description
** when
** when
 +
 +
For a standard installation the following script would enable Project:CE:Trunk
 +
 +
cat <<EOF > /srv/BOSS/processes/standard_workflow
 +
Ruote.process_definition :name => 'BOSS_Standard_Workflow' do
 +
  sequence do
 +
    standard_workflow_handler
 +
  done
 +
done
 +
EOF
 +
 +
PROJ=Project:CE:Trunk
 +
PDIR=/srv/BOSS/processes/${PROJ//:/\/}
 +
mkdir -p $PDIR
 +
for ev in SRCSRV_COMMIT REPO_PUBLISHED BUILD_UNCHANGED BUILD_FAIL BUILD_SUCCESS SRCSRV_VERSION_CHANGE SRCSRV_DELETE_PACKAGE SRCSRV_REQUEST_CREATE; do
 +
  ln -s /srv/BOSS/processes/standard_workflow $PDIR/$ev
 +
done
 +
 +
skynet enable standard_workflow
 +
skynet register -n standard_workflow

Revision as of 18:15, 18 July 2011

BOSS comes with a sample "standard workflow" which consists of:

This is not a mandatory workflow but was developed at Nokia and is designed to be useful for MeeGo vendors

Installation and source

Package : https://build.pub.meego.com/package/show?package=boss-launcher-robogrator&project=Project:MINT:Testing

GIT : https://meego.gitorious.org/meego-infrastructure-tools/boss-launcher-robogrator NOTE: skynet branch for now

Robogrator Process Launcher

Robogrator is the robotic package integrator. It reacts to the events occuring on the OBS and looks at the data inside to identify which project-specific process to launch.

Installation is as boss-launcher-robogrator:

apt-get install boss-launcher-robogrator

or

zypper in boss-launcher-robogrator

NOTE: robogrator is the package name , the participant name in processes is obs_event so register the participant with skynet by invoking the command :

skynet register -n obs_event

It uses the data sent by the obs-boss-plugin to launch a fresh process.

All processes have the fields:

  • project : the project used to drive the process. Usually the project the package is in but for requests type events this is the target project.
  • ev : the (undocumented) OBS Notify object parameters

For the actual process, robogrator uses the namespace/project/event-label to find a specific ruote process.

For the standard workflow the first participant is the standard_workflow_handler

It is configured in /etc/skynet/robogrator.conf

standard_workflow_handler

This participant serves two purposes:

  • tracks packages that are rebuilt when a repo is published
  • set some standard fields used by other participants
  • REPO_PUBLISHED
    • repository
    • packages (packages successfully built in this build/publish cycle)
  • BUILD_UNCHANGED, BUILD_SUCCESS, BUILD_FAIL
    • package
  • SRCSRV_CREATE_PACKAGE, SRCSRV_DELETE_PACKAGE
    • package
  • SRCSRV_VERSION_CHANGE
    • package
    • rev
    • version
  • SRCSRV_REQUEST_*
    • actions
    • who
    • rid
    • description
    • when

For a standard installation the following script would enable Project:CE:Trunk

cat <<EOF > /srv/BOSS/processes/standard_workflow
Ruote.process_definition :name => 'BOSS_Standard_Workflow' do
  sequence do
    standard_workflow_handler
  done
done
EOF

PROJ=Project:CE:Trunk
PDIR=/srv/BOSS/processes/${PROJ//:/\/}
mkdir -p $PDIR
for ev in SRCSRV_COMMIT REPO_PUBLISHED BUILD_UNCHANGED BUILD_FAIL BUILD_SUCCESS SRCSRV_VERSION_CHANGE SRCSRV_DELETE_PACKAGE SRCSRV_REQUEST_CREATE; do
  ln -s /srv/BOSS/processes/standard_workflow $PDIR/$ev
done

skynet enable standard_workflow
skynet register -n standard_workflow
Personal tools