1RBM_STEPS(7) RBM_STEPS(7)
2
3
4
6 rbm_steps - rbm steps configuration
7
9 When you define some project, you can have more than one script
10 definition, for the different steps of the build process (build, test,
11 publish, etc ...), or for different types of packaging (rpm, deb, etc
12 ...).
13
14 All the configuration options are shared between all those scripts.
15 However, in some cases you may want some option to have a different
16 value depending of the script that we are running. The name of the
17 script we are going to be running is called the step, and it is
18 possible to have different option values depending on the current step.
19
21 The first way to have a different option value depending on the curernt
22 step is to use the IF/ELSE template directives and the step option. The
23 step option contains the name of the current step. For instance if you
24 want to use a different git tag or branch for rpm and debian packages,
25 you could do:
26
27 git_hash: |
28 [% IF c('step') == 'rpm' -%]
29 dev-rpm
30 [%- ELSIF c('step') == 'deb' -%]
31 dev-deb
32 [%- ELSE -%]
33 dev
34 [%- END -%]
35
36 An other way to do it is to use steps option. This option works in a
37 similar way to the targets option except that it contains a hash
38 indexed by step name rather than a hash indexed by target name..
39
40 The steps configuration can be defined in any of the configuration
41 files, using the steps option. This option is an hash, with the steps
42 names as keys, and as value an other hash containing the options to be
43 used for this step.
44
45 A project which should use a different git tag or branch depending on
46 whether we are building an rpm or deb package could be defined in the
47 following way:
48
49 git_hash: dev
50 steps:
51 rpm:
52 git_hash: dev-rpm
53 deb:
54 git_hash: dev-deb
55
56 It is also possible to combine step based configuration with target
57 configuration. For instance you could do:
58
59 targets:
60 stable:
61 git_hash: stable
62 dev:
63 git_hash: dev
64 steps:
65 rpm:
66 targets:
67 stable:
68 git_hash: stable-rpm
69 dev:
70 git_hash: dev-rpm
71 deb:
72 targets:
73 stable:
74 git_hash: stable-deb
75 dev:
76 git_hash: dev-deb
77
78 If the value of a step is not a hash containing options, but a string,
79 then this name is used as step name. This can be used to alias a step
80 configuration to an other step. For instance you usually want to use
81 the same options for the rpm and srpm scripts. The default
82 configuration includes the following steps aliases:
83
84 · srpm: rpm
85
86 · deb-src: deb
87
89 Before starting some build script, you often need to prepare the host
90 for the build. Usually this means installing some dependencies required
91 for the build. After the build finished, you might want to remove those
92 dependencies that have been added.
93
94 This can be done using the pre and post options. Those options contains
95 a script that is run as root before and after the build. Those options
96 can be defined globally, or per step.
97
98 The pre and post scripts are expected to be run as root. To do that,
99 they are run using the suexec option if run locally, or if run using
100 the remote_exec option the exec_as_root option is set to true. The
101 suexec option takes the suexec_cmd option and runs it as root. By
102 default, the suexec option uses sudo.
103
105 rbm(1), rbm_config(7)
106
107
108
109 02/02/2019 RBM_STEPS(7)