Build Erlang using gitlab-ci - erlang

I have tried to search the Internet a lot but I couldn't find any information on how to build Erlang applications on Gitlab. I know I can build Erlang using travis-ci but again I was unable to find how to link my Gitlab Repository with travis-ci.
All the help will be appreciated.

Starting from version 8.0, GitLab Continuous Integration (CI) is fully integrated into GitLab itself and is enabled by default on all projects.
See documentation
Create Runner
Create .gitlab-ci.yml into your project root
Put into .gitlab-ci.yml next code:
Example
stages:
- build
build_my_project:
stage: build
script:
- make get-deps
- make compile

Take a look at the documentation page "Test a Clojure application".
Basically, you've got the Debian package system (apt-get) and you need to install whatever you want to use. You might use the packages from Erlang Solutions or you might use Kerl to install from scratch.

Related

Run a gitlab CI pipeline in Docker container

Absolute beginner in DevOps here. I have a Gitlab repo that I would like to build and run its tests in the Gitlab pipeline CI.
So far, I'm only testing locally on my machine with a specific runner. There's a lot information out there and I'm starting to get lost with what to use and how to use it.
How would I go about creating a container with the tools that I need ? (VS compiler, cmake, git, etc...)
My application contains an SDK that only works on windows, so I'm not sure building on another platform would work at all, so how do I select a windows based container?
How would I use that container in the yml file in gitlab so that I can build my solution and run my tests?
Any specific documentation links or suggestions are welcomed and appreciated.
How would I go about creating a container with the tools that I need ? (VS compiler, cmake, git, etc...)
you can install those tools before the pipeline script runs. I usually do this in before_script.
If there's large-ish packages that need to be installed on every pipeline run, I'd recommend that you make yourown image, with all the required build dependencies, push it to GitLab and then just use it as your job image.
My application contains an SDK that only works on windows, so I'm not sure building on another platform would work at all, so how do I select a windows based container?
If you're using gitlab.com - Windows runners are currently in beta, but available for use.
SaaS runners on Windows are in beta and shouldn’t be used for production workloads.
During this beta period, the shared runner quota for CI/CD minutes applies for groups and projects in the same manner as Linux runners. This may change when the beta period ends, as discussed in this related issue.
If you're self-hosting - setup your own runner on Windows.
How would I use that container in the yml file in gitlab so that I can build my solution and run my tests?
This really depends on:
previous parts (you're using GL.com / self hosted)
how your application is built
what infrastructure you have access to
What I'm trying to say is that I feel like I can't give you a good answer without quite some more information

How to build a ROS package using Jenkins?

I want to build a ROS package set using Jenkins server. Here I have put the repo link which one I want to build. If you have any idea please share with me. I have already finished the setting up the Jenkins server.
Generally it's recommended to use the ROS build farm for this; it was built for this purpose. There's a small amount of configuration, but all the steps are laid out clearly here.

Continuous Integration with hybrid mobile app

I have a problem. I need to build a job in my Jenkins server hosted by macmini (localhost) to automatic build a deploy for my mobile hybrid apps. That's apps was building with ionic2, and need a deploy for Android (apk) and for iOS (ipa).
But when i run a build from Jenkins, with this shell command
I get this error
that's not all... because i try to execute, from the jenkins folder, the npm i and the result was this:
When i try to build my application from other "folder" and not from jenkins, they works correctly. How i can solve?
Without more information hard to say; you can either just script the things you do when you deploy "manually", or you might want to try a CLI tool like https://www.bitrise.io/cli or https://fastlane.tools which can auto-scan your project and configure a suitable configuration which is then easier to tweak.
In case of Bitrise CLI the base config can be generated with bitrise init in the repo root, and you can also use a visual editor to modify your configuration: https://discuss.bitrise.io/t/how-to-experiment-with-bitrise-configs-locally-on-your-mac-linux/1751
After a lot of time, just find the solution. Jenkins have a own "tools management". So i need to install, into jenkins, a property version of nodeJS, Npm and all other tools i need to deploy the application.
So, first of all you need to install property plugin (in my case nodejs).
After this, going into Jenkins Management System and configure a NodeJS version. That's all

What is the right way to add Maven and Ant to a Jenkins Docker container?

I downloaded the jenkins/jenkins:lts image from docker hub which I got up and running on Ubuntu 16.04. The image doesn't seem to include Ant or Maven, and may also want to do builds against different versions of the jdk. I am wondering what is the right way to adress this - can I just run bash on the container and run apt-get or yum as the case may be to install extra stuff needed for my builds, or is there a better way?
Jenkins can automatically install Maven and Ant.
First, install the Ant Plugin by going to Manage jenkins > Manage Plugin > Available and install the Ant Plugin.
Next go to Manage jenkins > Global tool configuration then add Maven and Ant.
Once a build requires Maven or Ant, they will be downloaded and installed.
Installing your tools directly in the running container is probably a bad idea as changes won't persist. Instead, I see the following options:
Let jenkins manage your tools like proposed by yamenk
Clone the jenkinsci docker repository and build your custom jenkins image including build tools you need
Run build jobs in docker containers
I used option 3 with success just recently:
Run build jobs inside docker containers (look into Jenkins pipeline plugin, or just run it from a shell step)
Each build container has a single responsibility and provides all the tools your build environment needs
Support for different tools and versions is unlimited; new technologies can be added in no time
Another (more tricky) alternative is it to use Docker Containers for your tools.
I can recommend the following two articles:
https://jenkins.io/blog/2016/08/08/docker-pipeline-environments/
https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

Implement Dart workflow in Travis CI to deploy in Firebase

I'm new to both Firebase and Travis CI. Done some home work with Dart for sometime.
I'm trying to implement Travis CI for building my Angular Dart Project and deploying to Firebase.
It is going through the build and test fine, and while deploying i'm getting the below message.
Error: Specified public directory does not exist, can't deploy hosting
I have chosen build/web as my public directory while creating the firebase.json file. Seems like build directory is a different one in Travis CI.
What is the build directory?
Can i see some build files done in Travis CI for my project?
If so how?
Below is my GitHut Repository which i'm trying to automate the workflow.
Git Hub: https://github.com/Harikrishnadhas/siththargnaanaalayam
And Travis CI Build page shows the error here.
Travis CI : https://travis-ci.org/Harikrishnadhas/siththargnaanaalayam/builds/255561107
Kindly help!
Please find the answer to my question below
https://github.com/travis-ci/travis-ci/issues/8131
Currently Travis Doesn't build the dart project, hence script for same has to be added.

Resources