Public | Automated Build

Last pushed: 20 hours ago
Short Description
cosbench image for integration
Full Description

Integration

Integration is aiming to provide a complete solution for the
end-to-end testing of Scality projects. It is composed of two components:

Ultron

It is a small REST service geared towards GitHub push notifications, sending
build requests to circleCI. It is written in nodeJS.

Configuration

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"
}

Install

Just go into the bot directory and do npm install as you would with any
node service.

Usage

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:

    1. referencing 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
    1. calling it through a curl call:
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

Noteworthy env vars

SCALITY_*_BRANCH will select a specific branch for the build of the given project. Projects currently supported are:

  • S3
  • VAULT
  • METADATA
  • UTAPI
  • FEDERATION
  • INTEGRATION
  • VAULTCLIENT
  • BUCKETCLIENT
  • SPROXYDCLIENT
  • ARSENAL
  • WERELOGS
  • GUIDELINES

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

Nimrod

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.

Install

The usual python setup.py install will do the trick.

Usage

nimrod-build deploys the whole setup using Federation.
nimrod does all the above by itself.

Add new tests

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.

Docker Pull Command
Owner
scality
Source Repository

Comments (0)