Migrating from Jenkins to Codeship: Organizations

Development

This tutorial originally is published on our Codeship Documentation. You can find the article and other migration tutorials there.

There’s always someone who ends up with the responsibility of managing users and roles within an organization. This is a task that just needs done, and it has a sunk investment in setup and maintenance. However, it’s a vitally important task that needs to be finished and managed reliably each day.

With the Swiss Army knife that is Jenkins, that management and setup can actually be time-consuming and, in the worst case, need dedicated, specialized personnel.

This post will guide you through the migration of this functionality from Jenkins to Codeship and will encompass the features and options available. We’ve worked hard to make sure we provide a streamlined, more conventionally based, yet feature-rich workflow to help make the day-to-day work involved with user and role management quick, easy, and minimal!

Setting Up Users, Roles, and Organizations on Jenkins

The default installation of Jenkins provides a built-in database option around the creation of users.

jenkins_team

These users are then used to authenticate to and work with the server. They’re set up using the default “Allow users to sign up” settings shown in the above screenshot. There are also various plugins around single-sign-on integration with systems and other tools, and there are plugins around roles available too.

One thing to note (and one thing that’s quite cumbersome to migrate) is that each of these plugins is managed independently for the authorization, roles management, users, notifications, and related elements of Jenkins. Which means this will need to be meticulously combed through to determine what all is wired together from all the plugins. Which leads us to the Codeship solution.

Setting Up Users, Roles, and Organizations on Codeship

First, let’s use the example of a general team working on a project. We’d have several contributors, a project manager, and probably a manager. With Codeship, it’s easy to get all of these individuals involved with notifications, accounts, and roles with a minimal amount of effort. Let’s say our team looks like this:

  • Ron S : Manager
  • Leslie K : Project Manager
  • Andy D : Coder
  • April L : Coder
  • Ben W : Testing Automation
  • Tom H : Coder
  • Donna M : Coder

codeship_org_screenshot

To migrate from Jenkins to Codeship, however, Ron has asked us to use one of the options for setting up users and organizations, the key structural element for organizing users, within Codeship.

Once an organization is set up within Codeship, you can import existing projects, start new ones, create teams with roles, and add users to any of those specific assets. You can see many of those options below on the organization management screen.

organization_management

On this screen, you can see the Teams page, which would be something like https://app.codeship.com/orgs//teams, where you can create a new team, set up owners, members, and set up projects assigned to a team.

One account can have multiple organizations, and organizations can then have multiple organization owners. This provides flexibility for however an organization wants to organize their projects.

organization_management-two

Setting Up Roles in Codeship’s Organization Management

When setting up a team, you can assign a specific role.

  • Managers – These individuals can manage organization teams and projects and have access to all projects.
  • Project Managers – These individuals can manage projects assigned to the team. They can also debug builds, update test settings, or manage deployments.
  • Contributors – These individuals can view project dashboards and builds.
  • Owners – These individuals handle credit card setup and billing-related issues.

adding_a_team

Setting up members and projects within a team is easy.

add_team_member

All of these features combine to provide a seamless way to bring projects, teams, and individual users from Jenkins over to Codeship.

Here I’ve set up the team accordingly, and we’re ready to get to work now!

team_list

Setting Up Groups

I’ve set up three additional groups aside from the default owners group: one for the managers called Leadership, one for the project managers called Team Leads, and one for the programmers called Contributors.

When we select a team via the Teams section in the account settings, we can simply add projects to it.

add_project_to_team

We can now set up notifications per group. Navigate to the project by clicking on the project after adding it to the team role, and then click on the Project Settings and then Notifications.

build_in_a_team

Conclusion

Codeship handles setup of organizations and users simply, with informative visibility into the project for team members. It also provides a seamless and low maintenance way to manage users and roles within Codeship, whether it be Codeship Basic or Codeship Pro. Interested in more Jenkins-to-Codeship migration tutorials? Check out “Migrating from Jenkins to Codeship: Testing.”

Subscribe via Email

Over 60,000 people from companies like Netflix, Apple, Spotify and O'Reilly are reading our articles.
Subscribe to receive a weekly newsletter with articles around Continuous Integration, Docker, and software development best practices.



We promise that we won't spam you. You can unsubscribe any time.

Join the Discussion

Leave us some comments on what you think about this topic or if you like to add something.