Laster
Laster

Reputation: 458

How to configure Gitlab Runner to connect to Artifactory?

I am trying to set Gitlab runner to connect to Artifactory and pull images.My yml file to set RUnner looks like below :

gitlabUrl: https://gitlab.bayer.com/
runnerRegistrationToken: r*******-
rbac:
create: false
serviceAccountName: iz-sai-s
serviceAccount.name: iz-sai-s

runners:
privileged: true

resources:
limits:
memory: 32000Mi
cpu: 4000m
requests:
memory: 32000Mi
cpu: 2000m

What changes are needed to configure my runner properly to connect to Artifactory URL and pull images from there ?

Upvotes: 1

Views: 3900

Answers (1)

thatguy
thatguy

Reputation: 291

This is an example where my runner runs as docker container with an image having artifactory cli configured in it, so in your case your runner should have jfrog cli configured , next it needs an api key to access artifactory which you ll generate in artifactory and store in gitlab like below picture , exact path would be your repo - settings - CICD - variables

First it authenticates then uploads

publish_job:
  stage: publish_artifact
  image: xxxxxplan/jfrog-cli
  variables:
    ARTIFACTORY_BASE_URL: https://xxxxx.com/artifactory
    REPO_NAME:  my-rep
    ARTIFACT_NAME: my-artifact
  script:
    - jfrog rt c --url="$ARTIFACTORY_BASE_URL"/ --apikey="$ARTIFACTORY_KEY"
    - jfrog rt u "target/demo-0.0.1-SNAPSHOT.jar" "$REPO_NAME"/"$ARTIFACT_NAME"_"$CI_PIPELINE_ID.jar" --recursive=false

Mark the answer as accepted if it fulfils your requirement Also make sure to use indentation in your question which is not there enter image description here

Edit 1 : Adding the whole gitlab_ci.yml

stages:
  - build_unittest
  - static_code_review
  - publish_artifact
  
  
image: maven:3.6.1-jdk-8-alpine
cache:
  paths:
    - .m2/repository
    - target/
variables:
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"

build_unittest_job:
  stage: build_unittest
  script: 'mvn clean install'
  tags:
    - my-docker 
  artifacts:
    paths:
    - target/*.jar
    expire_in: 20 minutes
  when: manual  
code_review_job:
  stage: static_code_review
  variables:
    SONARQUBE_BASE_URL: https://xxxxxx.com
  script:
    - mvn sonar:sonar -Dsonar.projectKey=xxxxxx -Dsonar.host.url=https://xxxxx -Dsonar.login=xxxxx
  
  tags:
    - my-docker
  cache:
    paths:
      - /root/.sonar/cache
      - target/
      - .m2/repository
  when: manual    
publish_job:
  stage: publish_artifact
  image: plan/jfrog-cli
  variables:
    ARTIFACTORY_BASE_URL: https://xxxx/artifactory
    REPO_NAME:  maven
    ARTIFACT_NAME: myart
  script:
    - jfrog rt c --url="$ARTIFACTORY_BASE_URL"/ --apikey="$ARTIFACTORY_KEY"
    - jfrog rt u "target/demo-SNAPSHOT.jar" "$REPO_NAME"/"$ARTIFACT_NAME"_"$CI_PIPELINE_ID.jar" --recursive=false
  tags:
    - my-docker
  when: manual  

Upvotes: 2

Related Questions