GitLab 4.0 and GitLab CI Release

    The end of 2012 was in turmoil, and somehow I missed two important news: GitLab 4.0 came out in December , and the release of GitLab Continuous Integration Server came in mid-November .

    GitLab is a great FOSS solution for hosting git repositories inside a closed infrastructure. The functionality is largely similar to GitHub, in particular, the basic administration and separation of powers between users, issue tracker, wiki, code review and merge requests (similar to pull requests on GitHub) are available. And now, as for me, an extraordinary plus is integration with GitLab CIS.

    Gitlab CIS- if GitLab serves as a replacement for GitHub, then GitLab CIS is designed to become a replacement for Travis CI. A set of features is appropriate: launch via git push, separate builds for brunch, integration with any git repositories, and a badge with the status of the current build.

    There may be different reasons for finding and using self-hosted solutions for code content, but for the most part they are quite obvious and are due to a search for security and transparency, which cannot be achieved using SaaS.

    What is noteworthy, modest Ukrainian guys Dmitry Zaporozhets and Valery Sizov conduct and supervise the work .

    Gitlab 4.0

    Changes in application behavior:

    • New projects get a separate namespace (for example gitlab / vagrant)
    • Each group has its own directory in gitolite
    • All projects of the group will be moved inside its directory (git remote needs to be updated)
    • Projects without a group will remain in place
    • Users have usernames (for existing users, they will be generated based on the email address)
    • A user creates a project in his namespace (e.g. randx / my-project)
    • User can change their username. All his projects will be rescheduled accordingly.
    • The group has an owner
    • The owner can create projects within the group
    • The owner has access to all projects within the group.
    • The administrator can transfer projects from one namespace (group, user, global) to another
    • Group or user - namespace for the project. Namespace Owner - Project Owner

    Other changes

    • Improved PostgreSQL Support
    • Added project notification email
    • Fixed email notification when opening / closing issue
    • Reorganized Settings
    • Fixed comparison of commits
    • Updated interface, now you can download a patch or diff for commit and merge request
    • Milestones can now be closed. Milestone remains open until you close it.
    • New comments are displayed on the deschboard
    • Quickly add team members to the group # people page
    • Interface enhancements
    • In the admin section, projects, users and groups are sorted alphabetically.
    • Improved Issue management page on deschboard
    • Improved integration with GitLab CI (requires GitLab CI v1.1.1)

    What was removed in 4.0:

    • Gitolite 2 support
    • SQLite support (of course, this is a good thing, but this database is blocked when several users use it simultaneously)
    • API v2 support (due to incompatibility with namespaces)

    What needs to be updated during the move:

    • Config gitlab.yml
    • Post-receive gitolite hooks
    • Permissions for / home / git / repositories /
    • Symlink python2



    Merge request

    File browsing


    How to reinstall gitolite

    How to move with sqlite

    How to install gitlab v4.0.0

    How to upgrade GitLab to v4.0.0

    GitLab Continuous Integration Server

    Key points

    • GitLab CI runs on Ruby on Rails + Resque / Redis
    • GitLab CI only supports git
    • Auto build requires a working GitLab instance

    How it works

    1. First you need to install GitLab CI on VPS or any linux server
    2. Then you need to clone projects that will be tested in the future and set up a test environment
    3. The next step is to simply add projects to GitLab CI using the web interface
    4. It remains only to copy the HTTP POST url provided by GitLab CI to GitLab webhooks
    5. When pushing to the repository, a hook will work, which will force CI to start building

    I’ll add that the projects are really worth attention. Do not miss.
    1. GitLab on GitHub
    2. GitLab CI on GitHub

    Also popular now: