Getting started on GitLab
In this tutorial you will learn how to set up releaser-pleaser in your GitLab project with GitLab CI.
In
releaser-pleaserdocumentation we mostly use "Pull Request" (GitHub wording) instead of "Merge Request" (GitLab wording). The GitLab-specific pages are an exception and use "Merge Request".
1. Project Settings
1.1. Merge Requests
releaser-pleaser requires Fast-forward merges and squashing. With other merge options it can not reliably find the right merge request for every commit on main.
Open your project settings to page Merge Requests:
https://gitlab.com/YOUR-PATH/YOUR-PROJECT/-/settings/merge_requests
In the "Merge method" section select "Fast-forward merge":

In the "Squash commits when merging" section select "Require":

2. API Access Token
releaser-pleaser uses the GitLab API to create the release merge request and subsequent releases for you. The default GITLAB_TOKEN available in CI jobs does not have enough permissions for this, so we need to create an Access Token and make it available in a CI variable.
2.1. Create Project Access Token
Open your project settings to page Access tokens:
https://gitlab.com/YOUR-PATH/YOUR-PROJECT/-/settings/access_tokens
Create a token with these settings:
- Name: 
releaser-pleaser - Role: 
Maintainer - Scopes: 
api,read_repository,write_repository 
Copy the created token for the next step.

2.2. Save token in CI variable
Open your project settings to page CI/CD:
https://gitlab.com/YOUR-PATH/YOUR-PROJECT/-/settings/ci_cd
In the section "Variables" click on the "Add variable" button to open the form for a new variable. Use these settings to create the new variable:
- Type: Variable
 - Visibility: Masked
 - Flags: Uncheck "Protect variable" if your 
mainbranch is not protected - Key: 
RELEASER_PLEASER_TOKEN - Value: The project access token from the previous step
 
3. GitLab CI/CD
releaser-pleaser is published as a GitLab CI/CD Component: https://gitlab.com/explore/catalog/apricote/releaser-pleaser
Create or open your .gitlab-ci.yml and add the following include to your configuration:
stages: [build]
include:
  - component: $CI_SERVER_FQDN/apricote/releaser-pleaser/run@v0.4.0-beta.1
    inputs:
      token: $RELEASER_PLEASER_TOKEN
You can set the
stageinput if you want to runreleaser-pleaserduring a different stage.
If you want to use releaser-pleaser on a self-managed GitLab instance, you need to mirror the GitLab.com component to your instance. See the official GitLab documentation for details.
4. Release Merge Request
Once the releaser-pleaser job runs for the first time, you can check the logs to see what it did.
If you have releasable commits since the last tag, releaser-pleaser opens a release merge request for the proposed release.
Once you merge this merge request, releaser-pleaser automatically creates a Git tag and GitLab Release with the proposed version and changelog.
Related Documentation
- Explanation
 - Reference