Elixir: Functional programming for everyone
Elixir was born out of the need for better concurency and higher productivity in the rock solid Erlang virtual machine called BEAM. Deriving from the fact that it compiles to Erlang bytecode, it has access to all existing features of Erlang, while having zero impact on runtime. One of its key features is the support for metaprogramming, giving you the freedom to access even [abstract syntax trees] (http://en.wikipedia.org/wiki/Abstract_syntax_tree) (AST), if fiddling with things on the compiler level is your thing. Another big benefit is polymorphism, which is a real rarity in the functional programming world.
Summing all these things up, we get a fast, flexible and welcoming functional programming language aimed towards the development of fault-tolerant, distributed applications of any size.
Continuous Integration for Elixir Projects
After you have signed up for an account, select your repository from the list, and then select the first branch which will be built.
By default, new branches will be added automatically when you push them to your git repository server git repository server, such as GitHub and Bitbucket. There’s also an option to add branches manually on the project’s dashboard later on.
A quick analysis will detect your repository’s language, after which Semaphore will present some commands, which will run during the build process. You are free to modify these commands at any time in project settings.
Semaphore account, you’re ready to add your first Elixir project.
Projects can be created from source code hosted either on GitHub or BitBucket.
mix build tool is available in the Semaphore platform out-of-the-box. Hex packages are cached between builds, which ensures that your builds are as time-efficient as possible.
The last step you need to take is triggering the build process. After a short while, you can see the results of the build. It passed!
Thanks to projects like Phoenix, Dynamo and others, the vibrant Elixir community is rapidly growing. Testing frameworks like ExUnit and Amrita make it possible to have a pleasant workflow which incorporates continuous integration and deployment practices.