Vexor: how configuration files are being prepared

Preparation of configuration files by the Vexor team
13 June 2017   1599

Over the past couple of months, 100 projects have joined Vexor. Very different projects with unique settings. During this time, team learned a lot about creating of configuration files. In the process, developers revised their original approach and want to share innovations with you.

Vexor

Cloud Continuous Integration service. Unlimited parallelism
 

Continuous integration

Practice of merging all developer working copies to a shared mainline several times a day

Remake of launch scripts generation

The configuration file vexor.yml is used in order to understand what tasks need to be done to prepare the environment and run tests in VexorCI. This file is located in the root directory or generated automatically. It specifies the commands that will be executed to prepare the test environment and run the tests.

In the past, in order to convert vexor.yml directly into the commands that the worker performs when running the tests, we:

  1. The configuration file of built was obtained;
  2. Sort it out;
  3. Generated a large bash script;
  4. Sent the script to the worker.

There were a lot of problems with this scheme:

  • It was very difficult to do non-trivial tasks, for example, patching config / secrets.yml in a Rails application.
  • Bash is not the most successful language for writing large amount of code, there was a lot of tricky bugs.
  • Unclear error messages for the user.

Team decided to change it. Now we:

  1. Get the configuration of the build in yaml format;
  2. Convert the intermediate representation to a file, also in yaml format. The very structure of the file is made by analogy with ansible.
  3. This file is sent to the worker for execution.

Renouncement to generate a giant shell script allowed to manage the deployment environment more flexible, show users understandable error messages and forget about hard-to-solve bugs in the shell.

Change of keys assignment in the configuration file

To start using VexorCI, writing a configuration file is completely optional. Unfortunately, in the old version there were situations when the tasks generated by default collided with tasks specified by the user in the configuration file.

In order to avoid such conflicts in the future, all the settings related to the databases that used to be in the 'before_script' key should now be in a separate key - 'database'.

# was
before_script:
- rake db:create
- rake db:migrate
     
# now
database:
- rake db:create
- rake db:migrate

Using a separate key for databases makes the configuration easier and more understandable.

CCMenu is supported

CCMenu is a popular application that displays build statuses in the toolbar and allows you to always be aware of what is happening on the CI server. Now projects from VexorCI can easily be added to the CCMenu.

CCMenu URL at Vexor "Settings
CCMenu URL at Vexor "Settings

Go to "Settings" of your project and copy "CCMenu URL"

Feed URL tab
Feed URL tab in CCMenu

Paste this URL to a "Feed URL" field.

Final result
Final result

It works!

Now it's much easier to monitor the build status.

Use Vexor and get rid of any restrictions and unfair price. Connect and receive $ 5 on your account to check out Vexor.

Vexor.io

Which CI do you use?

In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. There are a lot of different continious integration solutions with strong and weak sides.
Take part in the survey of our portal. Which Continuous integration system do you use?

Vexor
37% (11 votes)
CircleCI
23% (7 votes)
Jenkins
17% (5 votes)
TravicCI
10% (3 votes)
GitlabCI
7% (2 votes)
Teamcity
3% (1 vote)
Atlassian Bamboo
3% (1 vote)
Apache Maven
0% (0 votes)
CodeShip
0% (0 votes)
Semaphore
0% (0 votes)
Total votes: 30

Vexor design updated

Vexor, handy and modern continius intagration service launched the new design and adds new price calculation feature
23 August 2017   888

Vexor is a cloud-based continuous integration for developers, which allows to effectively test projects and pay only for those resources that are actually used. You can check new design at the BehanceVexor.io will be updated in the end of August.

New Vexor Design
New Vexor Design

The new design is significantly different from the previous one. It is designed for both the desktop and mobile screens. A calculator will appear on the site, which allows you to calculate the cost of using the service by setting the necessary parameters.

Vexor price calculator
Vexor price calculator

We made the same progressive and convenient design as Vexor is. It displays our system as a whole, and this is very convenient, the absence of everything superfluous with maximum informativeness, ease of use and transparency of conditions.
 

Oleg Balbekov

Founder, Vexor

Design was created by the Evrone. Feel free to check out other Evrone's designers works at the portfolio.

History

The project appeared from the internal developments of Evrone. Company used Jenkins to run the tests. But when it became obvious that the CI-service needs to be modified for our specific tasks, it was changed to GitlabCI. There were several reasons for this:

  • GitlabCI is written in Ruby, which is the team’s native language;
  • It is small and simple, which means it can be easily modified.

During the exploitation period, GitlabCI mutated quite strongly. And at the moment when it already had too little in common with the original product, team just re-coded everything. So this was the first version of Vexor, which was used only inside the company.

Learn more about Vexor in our materials: fresh view on the continuous integration and Inside Vexor.