Sample pipeline to upload and download artifacts for GitLab

  • Release version: Washingtondc
  • Updated August 1, 2024
  • 1 minute to read
  • Pipeline samples for GitLab containing steps to upload and download artifacts for GitHub.

    To upload and download artifacts from GitLab to JFrog, the parameters JFROG_URL, JFROG_USER, and JFROG_PASSWORD must be set as CI/CD variables in your GitLab instance.

    1. Navigate to your project, then go to Settings > CI/CD > Variables.
    2. Select Add variable.
    3. Enter the parameter in the Key field and enter the value for the parameter in the Value field.
    4. Select Add variable to save.
    Create a CI/CD variable for the following 3 parameters:
    • JFROG_URL
    • JFROG_USER
    • JFROG_PASSWORD

    Set the parameters.

    Sample pipeline to upload artifacts from GitLab to JFrog

    
    stages:
      - upload
    
    variables:
      JFROG_CLI_HOME: ${CI_PROJECT_DIR}
      JFROG_ARTIFACTORY_URL: ${JFROG_URL}
      JFROG_ARTIFACTORY_REPO: "local_repo/gitlab"
      JFROG_ARTIFACTORY_USERNAME: ${JFROG_USER}
      JFROG_ARTIFACTORY_PASSWORD: ${JFROG_PASSWORD}
      ARTIFACT_PATH: "/"
      ARTIFACT_NAME: "servicenow-app-devops.zip"
      BUILD_NAME: "${CI_PROJECT_NAME}"
      BUILD_NUMBER: "${CI_PIPELINE_ID}"
      JFROG_CLI_BUILD_URL: ${CI_SERVER_URL}/$CI_PROJECT_PATH/-/pipelines/$CI_PIPELINE_ID
    
    upload:
      stage: upload
      script:
        - export BUILD_URL=${CI_SERVER_URL}/$CI_PROJECT_PATH/pipelines/$CI_PIPELINE_ID
        # upload artifact
        - jfrog rt u "servicenow-app-devops.zip"  "${JFROG_ARTIFACTORY_REPO}" --build-name=$CI_PROJECT_NAME --build-number=$CI_PIPELINE_ID
        # publish build-info
        - jfrog rt bp "${CI_PROJECT_NAME}" "${CI_PIPELINE_ID}"
      before_script:
      - mkdir -p ${JFROG_CLI_HOME}
      - export PATH=$PATH:${JFROG_CLI_HOME}
      - curl -fL https://getcli.jfrog.io | sh
      - jfrog config add artifactory-server --artifactory-url=${JFROG_ARTIFACTORY_URL} --user=${JFROG_ARTIFACTORY_USERNAME} --password=${JFROG_ARTIFACTORY_PASSWORD}

    Sample pipeline to download artifacts from JFrog to GitLab

    
    stages:
      - download
    
    variables:
      JFROG_CLI_HOME: ${CI_PROJECT_DIR}
      JFROG_ARTIFACTORY_URL: ${JFROG_URL}
      JFROG_ARTIFACTORY_REPO: "local_repo/gitlab"
      JFROG_ARTIFACTORY_USERNAME: ${JFROG_USER}
      JFROG_ARTIFACTORY_PASSWORD: ${JFROG_PASSWORD}
      ARTIFACT_PATH: "/"
      ARTIFACT_NAME: "servicenow-app-devops.zip"
      BUILD_NAME: "${CI_PROJECT_NAME}"
      BUILD_NUMBER: "${CI_PIPELINE_ID}"
      JFROG_CLI_BUILD_URL: ${CI_SERVER_URL}/$CI_PROJECT_PATH/-/pipelines/$CI_PIPELINE_ID
    
    download:
      stage: download
      script:
        # download artifact 
         - jfrog rt dl ${JFROG_ARTIFACTORY_REPO}/servicenow-app-devops.zip --include-dirs --build-name=$CI_PROJECT_NAME --build-number=$CI_PIPELINE_ID
        # publish build-info 
         - jfrog rt bp ${CI_PROJECT_NAME} ${CI_PIPELINE_ID}
      before_script:
      - mkdir -p ${JFROG_CLI_HOME}
      - export PATH=$PATH:${JFROG_CLI_HOME}
      - curl -fL https://getcli.jfrog.io | sh
      - jfrog config add artifactory-server --artifactory-url=${JFROG_ARTIFACTORY_URL} --user=${JFROG_ARTIFACTORY_USERNAME} --password=${JFROG_ARTIFACTORY_PASSWORD}