DEV Community

Cover image for Config Gitlab Runner To Push A Tag
馃殌 Vu Dao 馃殌
馃殌 Vu Dao 馃殌

Posted on

Config Gitlab Runner To Push A Tag

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
Enter fullscreen mode Exit fullscreen mode
  • 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
Enter fullscreen mode Exit fullscreen mode

馃殌 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Ref: Make pipeline permissions more controllable and flexible

Visit wwww.cloudopz.co to get more

馃尃 Blog Web Linkedin Group Page Twitter 馃尃

Top comments (2)

Collapse
 
oferei profile image
Ofer Reichman

Hey, thanks! This proved useful for me.
Just a small note: the lines in the before_script section (git remote set-url ...) should be called after the build. Otherwise the build may fail with this error:
[UnityConnectServicesConfig] config is NOT valid, switching to default
Cancelling DisplayDialog: Failed to activate/update license Missing or bad username or password. Please try again using valid credentials or contact support@unity3d.com

I avoided the error by putting all the code above at the end of my script section.

Collapse
 
vumdao profile image
馃殌 Vu Dao 馃殌

@oferei I now don't need to use oauth2 just use the url eg. GIT_URL="https://gitlab-ci-token:${TOKEN}@gitlab.com/devops/k8s.git"