Rails continuos integration

Hi,

I am using Jenkins and ansible to automate my rails application deployment process. I would like to know, if there is any specific build process for rails app like Java application.

Right now, I am using the below set of process to automate my application deployment.

 Jenkins

·
Fetches the code from Git source code repository.

·
Build the code (tar) and put it in the build server.

·
Triggers the deployment jobs.

Ansible

·
Copy the build package to the remote deployment server.

·
Un tar the build package.

·
Tag the release version.

·
Stop app

·
Link the release version to the application folder. (Deploy application)

·
Start app

·
Maintains 3 release versions in the target deployment server. (So that we can rollback to previous version of the code, if required.

Please suggest if we have any specific build process for rails app. Currently I am just using tar.

I'd call this more of a "deployment" than "build" tool, but it's most definitely in widespread use:

http://capistranorb.com/

HTH!

yes, thats more of a deployment tool. I am able to deploy my rails app in a continuos manner right now. I just want to know if my approach is rite and if there is any specific build techniques for rails app. Currently, I just pull the source code from repo → tar it into a package–> stop app in target —> untar the package in target (and some other release versioning stuff) using ansible → start the app.

Thanks,

Vivek

What do you think you need to "build"? Ruby isn't Java :slight_smile:

yes, thats more of a deployment tool. I am able to deploy my rails app in a continuos manner right now. I just want to know if my approach is rite and if there is any specific build techniques for rails app. Currently, I just pull the source code from repo --> tar it into a package--> stop app in target ---> untar the package in target (and some other release versioning stuff) using ansible --> start the app.

Is that not deployment? - Pulling the latest version from a repo onto the target and restarting it. That is what capistrano is for.

Colin

yes, it is. But I was looking for more of a delivery process. Pulling the latest version from repository and restarting app is fine for internal deployment. How abt delivering it like a package to external clients?

yes, it is. But I was looking for more of a delivery process.

Uh, then why did you title your post "continuous integration"?

How abt delivering it like a package to external clients?

How about it? What exactly do you mean by "like a package"?

What do you expect these "external clients" to do with the "package"?

Hint: if you can't actually define your requirements, you're unlikely to find very good solutions here or anywhere else :slight_smile: