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’s 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"