Linkify the README.
This commit is contained in:
parent
a5b4d7d3eb
commit
0e4f13de9a
35
README.md
35
README.md
@ -20,7 +20,8 @@ StrawBoss must know about the projects it builds. For each project, StrawBoss
|
|||||||
must be configured with a unique project name and a URL or repo-specification
|
must be configured with a unique project name and a URL or repo-specification
|
||||||
that can be passed to `git clone` to clone the project.
|
that can be passed to `git clone` to clone the project.
|
||||||
|
|
||||||
For more details see the Service Project Definitions section.
|
For more details see the
|
||||||
|
[Service Project Definition](#service-project-definition) section.
|
||||||
|
|
||||||
## Artifacts Repo
|
## Artifacts Repo
|
||||||
|
|
||||||
@ -52,7 +53,7 @@ are:
|
|||||||
|
|
||||||
All are required.
|
All are required.
|
||||||
|
|
||||||
#### Service Project Definitions
|
#### Service Project Definition
|
||||||
|
|
||||||
Project definitions are JSON objects with the following keys:
|
Project definitions are JSON objects with the following keys:
|
||||||
|
|
||||||
@ -69,9 +70,9 @@ Project definitions are JSON objects with the following keys:
|
|||||||
`master`)*.
|
`master`)*.
|
||||||
|
|
||||||
* `cfgFilePath` *(optional)*: path to the StrawBoss project configuration file
|
* `cfgFilePath` *(optional)*: path to the StrawBoss project configuration file
|
||||||
(see the Project Configuration section). If this is a relative path it is
|
(see the [Project Configuration](#project-configuration) section). If this is
|
||||||
resolved relative to the project root directory. *(defaults to
|
a relative path it is resolved relative to the project root directory.
|
||||||
`strawboss.json`)*.
|
*(defaults to `strawboss.json`)*.
|
||||||
|
|
||||||
* `envVars` *(optional)*: an object whose key-value pairs are expected to be
|
* `envVars` *(optional)*: an object whose key-value pairs are expected to be
|
||||||
strings. Each pair will be added as an environment variable to the runtime
|
strings. Each pair will be added as an environment variable to the runtime
|
||||||
@ -82,10 +83,11 @@ Project definitions are JSON objects with the following keys:
|
|||||||
The build configuration for each project lives in the project itself. In the
|
The build configuration for each project lives in the project itself. In the
|
||||||
root directory of the project repo StrawBoss expects to find a project
|
root directory of the project repo StrawBoss expects to find a project
|
||||||
configuration file named `strawboss.json` (this location can be configured, see
|
configuration file named `strawboss.json` (this location can be configured, see
|
||||||
the Service Project Definitions section). The project configuration file
|
the [Service Project Definition](#service-project-definition) section). The
|
||||||
tells StrawBoss what steps of a project are available to be built, and how to
|
project configuration file tells StrawBoss what steps of a project are
|
||||||
initiate the build for each step. Steps can be dependant on each other, as long
|
available to be built, and how to initiate the build for each step. Steps can
|
||||||
as they do not define any circular references.
|
be dependant on each other, as long as they do not define any circular
|
||||||
|
references.
|
||||||
|
|
||||||
The contents of a project configurations files is expected to be a valid JSON
|
The contents of a project configurations files is expected to be a valid JSON
|
||||||
object. The top level keys are:
|
object. The top level keys are:
|
||||||
@ -95,7 +97,7 @@ object. The top level keys are:
|
|||||||
|
|
||||||
* `steps` *(required)*: an object of step definitions. Each of this object's
|
* `steps` *(required)*: an object of step definitions. Each of this object's
|
||||||
keys is the name of a step. The corresponding value is the step definition.
|
keys is the name of a step. The corresponding value is the step definition.
|
||||||
(see the Step Definitions section for details).
|
(see the [Step Definition](#step-definition) section for details).
|
||||||
|
|
||||||
* `versionCmd` *(optional)*: a command to be run in a shell (`sh`-compatible)
|
* `versionCmd` *(optional)*: a command to be run in a shell (`sh`-compatible)
|
||||||
that is expected to print the current version of the project on `stdout`.
|
that is expected to print the current version of the project on `stdout`.
|
||||||
@ -110,7 +112,8 @@ When performing a build, StrawBoss:
|
|||||||
3. checkout the revision or branch requested for this run
|
3. checkout the revision or branch requested for this run
|
||||||
4. load the project's StrawBoss configuration file.
|
4. load the project's StrawBoss configuration file.
|
||||||
5. merge environment variables defined in the project configuration
|
5. merge environment variables defined in the project configuration
|
||||||
6. run `versionCmd` to get the current project version
|
6. run `versionCmd` to get the current project version. The result is stored
|
||||||
|
in the `VERSION` environment variable.
|
||||||
7. check the environment variables against `expectedEnv`
|
7. check the environment variables against `expectedEnv`
|
||||||
8. check that all the steps named in `depends` have already been run and run
|
8. check that all the steps named in `depends` have already been run and run
|
||||||
them if they have not. For each step named in `depends` an environment
|
them if they have not. For each step named in `depends` an environment
|
||||||
@ -124,7 +127,7 @@ When performing a build, StrawBoss:
|
|||||||
10. the files named in `artifacts` are copied into the artifacts repo for this
|
10. the files named in `artifacts` are copied into the artifacts repo for this
|
||||||
step and version.
|
step and version.
|
||||||
|
|
||||||
#### Step Definitions
|
#### Step Definition
|
||||||
|
|
||||||
Step definitions are JSON objects with the following keys:
|
Step definitions are JSON objects with the following keys:
|
||||||
|
|
||||||
@ -158,11 +161,11 @@ Step definitions are JSON objects with the following keys:
|
|||||||
in the build environment it will cause StrawBoss to fail this step.
|
in the build environment it will cause StrawBoss to fail this step.
|
||||||
*(defaults to `[]`)*.
|
*(defaults to `[]`)*.
|
||||||
|
|
||||||
* `dontCache` *(optional)*: boolean. StrawBoss remembers the steps it has run
|
* `dontSkip` *(optional)*: boolean. StrawBoss remembers the steps it has run
|
||||||
and caches the artifacts generated by them. Future builds for the same
|
and caches the artifacts generated by them. Future builds for the same
|
||||||
version that request this step normally will not cause StrawBoss to re-run
|
version that request this step normally will not cause StrawBoss to re-run
|
||||||
the step. If `dontCache` is set to `true`, the output of this step will not
|
the step. If `dontSkip` is set to `true`, the output of this step will always
|
||||||
be cached, causing this step to always be run when it is referenced.
|
be run when it is referenced, regardless of previous cached results.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user