GitLab Process

This document outlines the processes for supporting the Mattermost package in GitLab Omnibus.

Merge Requests

To submit a merge request (MR) to GitLab for taking the next Mattermost version, follow these steps. The MR must be merged by the 7th of the month to be included in a GitLab release.

  1. Check out the latest version of GitLab Omnibus and make a branch with the following changes:

  2. Build GitLab and test it locally following these steps.

  3. Submit a MR to the master branch of Gitlab, including a summary of updates in Team Edition that are relevant to GitLab

  4. Post a link to the MR in the Release Discussion channel.

  5. Check daily for updates until the MR is merged, ensuring it gets merged by the 7th of the month.

  6. Once the MR is merged and included in an RC, test upgrade following these steps.

If the release contains a security update, PM owner emails @marin and @briann in GitLab with a link to the MR, and all subsequent backports.

Testing

The following steps are taken to test the Mattermost package in GitLab Omnibus:

  1. Each Mattermost version is tested on a GitLab Omnibus build at http://ci-linux-gitlab-omnibus.mattermost.com/. Testing covers all core Mattermost features, including notifications and GitLab SSO.
  2. Before each merge request to GitLab Omnibus, upgrade is tested following the steps below, using the nightly Omnibus packages to validate the integration. This is so the packaging code and OAuth setup can be tested as well, which has historically been the main source of issues. Other test areas include:
  • Pre-provisioning OAuth configuration automatically on the Omnibus package
  • Mattermost ChatOps slash command integration
  • OAuth team creation option in GitLab Omnibus

Upgrade Process

Follow these steps to test the upgrade process for Mattermost in GitLab Omnibus.

The current test servers are located at:

The root admin account for them has username root and password Password1.

  1. Connect to the previously configured instance using the key you used to set it up. The host name is ubuntu@gitlab-rc-testing.spinmint.com.
  2. Make sure your package manager is configured to allow for Gitlab RCs:
  • Go to https://packages.gitlab.com/gitlab/unstable.

  • Click on the newest release candidate that’s marked CE and is for Ubuntu/Trusty.

  • Run the first command listed on that page on your server. It looks something like:

    curl -s https://packages.gitlab.com/install/repositories/gitlab/unstable/script.deb.sh | sudo bash
    
  1. Update the package manager
sudo apt-get update
  1. Update GitLab by running the second command listed on the page you opened on step 2. It looks something like:

    sudo apt-get install gitlab-ce=8.10.0-rc13.ce.0
    
  2. Reconfigure GitLab:

sudo gitlab-ctl reconfigure
  1. Restart GitLab:
sudo gitlab-ctl restart
  1. To confirm the upgrade was successful:

Useful Commands

  1. View config.json directly (arrow keys to scroll, press Q to exit):
sudo less /var/opt/gitlab/mattermost/config.json
  1. Stop/start Mattermost manually:
sudo /opt/gitlab/bin/gitlab-ctl stop mattermost
sudo /opt/gitlab/bin/gitlab-ctl start mattermost
  1. Access the GitLab admin console (press CTRL+D to exit):
sudo gitlab-rails console production

You can then carry out commands such as updating a user’s password:

user = User.find_by(email: 'admin@local.host')
user.password = 'secret_pass'
user.password_confirmation = 'secret_pass'
user.save!
  1. Edit NGINX configuration directly:
sudo vim /var/opt/gitlab/nginx/conf/gitlab-mattermost-http.conf
sudo vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
sudo vim /var/opt/gitlab/nginx/conf/nginx.conf
sudo vim /var/opt/gitlab/nginx/conf/nginx-status.conf
  1. Stop/start NGINX manually:
sudo /opt/gitlab/bin/gitlab-ctl stop nginx
sudo /opt/gitlab/bin/gitlab-ctl start nginx

Service-Level Agreement (SLA)

Mattermost has created a mattermost-support account in GitLab for support issues, and has subscribed to the mattermost label in the following projects:

When a mattermost label is applied, an email notification is sent to the technical support team who answers the question within two business days using the mattermost-support account.

GitLab Premier Support Issues

GitLab has a 4-hour support window for their premier support customers and Mattermost has set up a process to support this window.

When a premier support issue requires escalation to the Mattermost support team, GitLab assigns the issue to the mattermost-support account. This assignment sends an email notification, which is automatically escalated to the critical level technical support who answers the question within 4 hours using the mattermost-support account.

Monthly Meetings

Changes and features affecting GitLab Omnibus are communicated via GitLab issues and GitLab Slack channel.

Moreover, a recurring monthly meeting between a product manager at GitLab and Mattermost is organized to cover

  • concerns/issues from GitLab Omnibus team,
  • new upcoming changes or features in Mattermost affecting GitLab Omnibus, and
  • other miscellaneous queued items.

Optionally, an engineer from both GitLab and Mattermost teams also joins the meeting.

Templates

GitLab announcement proposal

Proposed update for new version of [Mattermost](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1241).

### GitLab Mattermost 4.7

GitLab 10.6 includes [Mattermost 4.7](https://about.mattermost.com/releases/mattermost-4-7/), an [open source Slack-alternative](https://about.mattermost.com/) whose newest release includes enhanced image preview and thumbnails, faster load times, upgraded desktop app, plus much more.

This version also includes [security updates](https://about.mattermost.com/security-updates/) and upgrading is recommended.