Rodrigo Gonzalez CEO March 15, 2018 - 2 mins read DevOps and Elixir In this post, we will explain how to build, test and deploy a simple Elixir app with a single pipeline. As you can see in our previous posts, having a complete pipeline to introduce DevOps in your day-to-day live is easy with Clarive’s Rulebook. You just have to follow these three simple steps: 1. Get your 30-day trial 2. Upload your code to your Clarive Project repository. 3. Prepare your rulebook, push your commit and enjoy! (oops, maybe four steps would have been better :)) So let’s get down to business: we will detail the needed code. Defining our variables First, we declare the variables that will be used throughout our pipeline process. vars: - workspace: "${project}/${repository}" - server: https://<my-clarive>.clarive.io - art_path: ${server}/artifacts/repo/${project} Building our application In this step, we choose Elixir Docker image using Mix as a building tool. build: do: - image: name: 'elixir' runner: 'bash' - shell [Compile application]: | cd {{ workspace }} mix compile tar cvf ${project}_${job}.tar _build/dev/lib/ And publish the compiled application to our artifact repository. - artifact_repo = publish: repository: Public to: '${art_path}' from: '{{ workspace }}/${project}_${job}.tar' - log: level: info msg: Application build finished Ready to test As long as we have our own application tests, this step is as simple as running the right command. test: do: - image: name: 'elixir' runner: 'bash' - shell: | cd {{ workspace }} mix test Deploy wherever we want Now, it’s time to choose where our app will run. For example, send the tar file to another server and run the app. deploy: do: - ship: from: '${art_path}/${project}_${job}.tar' to: /tmp/remotepath/ host: ${remote_server} - shell: cd /tmp/remotepath/ tar -xvf ${project}_${job}.tar mix run This remote_server could be an AWS instance in PROD environment or another Docker container just to QA. Happy Ending Now with our .yml file already prepared, we can use Clarive’s interface to visualize the steps that will follow the finalizing of the rulebook. To start the deployment, we only need to perform the push on the repository, just as we have seen before in other posts. When performing the push, Clarive automatically creates a deployment (Continuous Integration) and executes all the code found in the .clarive.yml. Visit Clarive documentation to learn more about the features of this tool. Share this:Click to print (Opens in new window)Click to share on LinkedIn (Opens in new window)Click to share on Twitter (Opens in new window)Click to share on Google+ (Opens in new window)Click to share on Facebook (Opens in new window)