Config Gitlab Runner To Push A Tag

Config Gitlab Runner To Push A Tag

3 min read

Any commits should be tagged align with build version especially master branch. How to configure Gitlab runner to do this?

What鈥檚 In This Document

馃殌 What is the usecase

  • Developer tells gitlab runner to tag the commit and publish the tag .gitlab-ci.yml

    build:
    stage: build
    script:
      - echo "Build and tag the commit"
      - tag=1.0-${CI_COMMIT_SHORT_SHA}
      - git tag $tag
      - git push origin $tag
    tags:
      - gitlab-runner
    
  • But got the error remote: You are not allowed to upload code.

    Build and tag the commit
    $ tag=1.0-${CI_COMMIT_SHORT_SHA}
    $ git tag $tag
    $ git push origin $tag
    remote: You are not allowed to upload code.
    fatal: unable to access 'https://gitlab-ci-token:[MASKED]@gitlab.com/hello-gitlab.git/': The requested URL returned error: 403
    ERROR: Job failed: exit status 1
    

馃殌 Solve problem by using OAUTH2.0 and tokens

1. Create access token

  • Go to User Setttings -> Access Tokens

Alt Text

Alt Text

2. Update .gitlab-ci.yaml

build:
  stage: build
  before_script:
    - project_url=$(echo $CI_PROJECT_URL | sed 's/https:\/\///')
    - git remote set-url origin https://oauth2:$GITLAB_TOKEN@$project_url
  script:
    - echo "Build and tag the commit"
    - tag=1.0-${CI_COMMIT_SHORT_SHA}
    - git tag $tag
    - git push origin $tag
  only:
    refs:
      - tagme
  tags:
    - gitlab-runner

3. Check result

Build and tag the commit
$ tag=1.0-${CI_COMMIT_SHORT_SHA}
$ git tag $tag
$ git push origin $tag
warning: redirecting to https://gitlab.com/hello-gitlab.git/
To https://gitlab.com/hello-gitlab
 * [new tag]           1.0-0714997f -> 1.0-0714997f
 Job succeeded

Ref: Make pipeline permissions more controllable and flexible

Visit cloudopz.co to get more

Blog Web Linkedin Group Page Twitter