Integration is aiming to provide a complete solution for the
end-to-end testing of Scality projects. It is composed of two components:
It is a small REST service geared towards GitHub push notifications, sending build requests to circleCI. It is written in nodeJS.
ultron looks for a config.json in its root folder, containing the
following fields:
{
"username": "your_robot_github_username",
"hubtoken": "your_robot_github_token",
"citoken": "your_circle_ci_token"
}
Just go into the bot directory and do npm install as you would with any
node service.
npm start will do the trick. You will need to ensure that github issue
comments are forwarded to ultron via a webhook in the interface of your
project.
You can trigger ultron from 2 different ways:
ironman-machine on a github PR's comment.You will be able to start a new build by invoking @username (as defined in
the config file) in a PR comment. You can add on separate lines every
environment variable you may want to have in the build using the following
format:
ENV_VAR=whateveryouneed
curl -X POST --header "Content-Type: application/json" -d '{
"build_parameters": {
"SCALITY_REPO_BRANCH": "_x_",
}
}' https://ci.ironmann.io/api/v1/project/scality/Integration/tree/wip%2Fultron?circle-token=_circlecitoken_ -k
SCALITY_*_BRANCH will select a specific branch for the build of the given project. Projects currently supported are:
SVC_BASE_FORCE_BUILD will enforce building the svc-base image for the common
base layer of all of our containerized services available in
Federation. Setting this environment variable has for effect to
automatically enfore the nodesvc-base image rebuild too, as it is relying on
this one.
NODESVC_BASE_FORCE_BUILD will enforce building the nodesvc-base image for the
base layer of all or our containerized Node.JS-based services available in
Federation.
CI_COSBENCH_FORCE_BUILD will enforce re-building the cosbench image used by
the CI tests available in Integration.
CI_AGGRESSOR_FORCE_BUILD will enforce re-building the aggressor image used as
the "test launcher" container in the CI tests, available in
Integration
It is a python integration wrapper, meant to be used in circleCI's environment or locally. All projects are able to be tested in an end-to-end scenario thanks to this.
The usual python setup.py install will do the trick.
nimrod-build deploys the whole setup using Federation.
nimrod does all the above by itself.
Tests are automatically picked-up in any path of the repository, as long as they
provide the mandatory master.yml describing the aggressor configuration.
Adding test is then just a matter of adding this file and whatever you may need
to interact with the fully deployed system.
Content type
Image
Digest
Size
205.9 MB
Last updated
over 4 years ago
docker pull scality/ci-cosbench:stabilization_7.10.3