This document outlines the processes for supporting the Mattermost package in GitLab Omnibus.
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.
Check out the latest version of GitLab Omnibus and make a branch with the following changes:
- Changes to Mattermost version number (default_version) and md5 sum of the final TE build (source md5) in config/software/mattermost.rb
- Update to the GitLab changelog by using
/scripts/changelogscript to create a changelog entry
- Config.json updates to gitlab.rb, attributes default.rb and config.json.erb with new TE config settings (see example)
- Update to GitLab Mattermost documentation
Build GitLab and test it locally following these steps.
Submit a MR to the master branch of Gitlab, including a summary of updates in Team Edition that are relevant to GitLab
Post a link to the MR in the Release Discussion channel.
Check daily for updates until the MR is merged, ensuring it gets merged by the 7th of the month.
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.
The following steps are taken to test the Mattermost package in GitLab Omnibus:
- 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.
- 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
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.
- Connect to the previously configured instance using the key you used to set it up. The host name is
- Make sure your package manager is configured to allow for Gitlab RCs:
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
- Update the package manager
sudo apt-get update
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
sudo gitlab-ctl reconfigure
- Restart GitLab:
sudo gitlab-ctl restart
- To confirm the upgrade was successful:
- Go to `http://gitlab-rc-testing2.spinmint.com <http://gitlab-rc-testing2.spinmint.com >`__.
- Create an account and log in.
- Confirm the correct version number in Main Menu > About Mattermost.
- View config.json directly (arrow keys to scroll, press Q to exit):
sudo less /var/opt/gitlab/mattermost/config.json
- Stop/start Mattermost manually:
sudo /opt/gitlab/bin/gitlab-ctl stop mattermost sudo /opt/gitlab/bin/gitlab-ctl start mattermost
- 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: 'firstname.lastname@example.org') user.password = 'secret_pass' user.password_confirmation = 'secret_pass' user.save!
- 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
- Stop/start NGINX manually:
sudo /opt/gitlab/bin/gitlab-ctl stop nginx sudo /opt/gitlab/bin/gitlab-ctl start nginx
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
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
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.
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.