Hi, Habr.

    I am developing a plugin for Java applications to run code on .Net. The project is open, posted on GitHub. And at some time I decided that it would be nice to find Continious Build & Test so that I could collect the product in it.

    After a little search, I came across a rather interesting and simple solution.

    Disclaimer: I have nothing to do with the development of this product, I don’t know the author, etc. I just liked this service, and I decided to write a post.

    So, the task: to find a SaaS service that would solve the following tasks:
    • Easy integration with github
    • Easy system setup
    • Ability to run an arbitrary script for tests (I needed to run a Java application to verify that the plug-in took root and so on)
    • Availability of a free tariff plan (with restrictions, of course)

    Naturally, at first I went over a couple of options. I can’t say that I was looking thoroughly, but one of the ideas was to find a Team City SaaS solution and use it. This is logical, since Team City itself is written in Java, and it can run MS Build. My searches were unsuccessful, but I found an answer on StackOverflow , where the author of AppVeyor advertised his service a bit.

    I tried to drive it, and I liked the interface of this solution:

    To work with it, an account on GitHub is enough. The system will put hooks on push operations and will closely monitor the repository. In general, the service has many advantages (from my point of view):
    • Easy initial configuration. We connect an account; say where are the sln files. That's it, you will already have builds.
    • Several test modes: you either run standard Unit tests, or run your own script, which is what I wanted /
    • Several options for Deployment, in particular, you can update the beta version of your site (including in the cloud) automatically. And most importantly - it can be easily and quickly configured. You can even automatically upload a NuGet package after a successful build.
    • As you can see in the picture, this system can put the version of the build into files automatically, so to speak, out of the box.
    • The configuration can be stored in the repository itself using YAML files.

    As I said above, I needed Java to run the tests. It wasn’t on the build machines. I wrote a wish on the site, and after a couple of hours Java was on the machines. Very cool service in this regard.

    Naturally, all this is more suitable for small "home" projects, since, unlike Team City, TFS and similar systems, here you do not have full control over the assembly process, you will not be able, for example, to build any Solution 'Build and after performing tests from the previous one. However, if you want to quickly configure the build, then it is easy to satisfy using this system.

    And again: I have nothing to do with this service and its development. The purpose of the post: to show another easy way to configure the build for your repository.


    Also popular now: