Skip to content

gitlab-ci Plugin

This plugin creates GitLab CI workflow.

It downloads a template of your choice, renders it with provided parameters, and creates a GitLab CI file for your repo.

Usage

The following content is an example of the "tool file".

For more information on the main config, the tool file, and the var file of DevStream, see Core Concepts Overview and DevStream Configuration.

Plugin config example:

YAML
tools:
# name of the tool
- name: gitlab-ci
  # id of the tool instance
  instanceID: default
  # format: name.instanceID; If specified, dtm will make sure the dependency is applied first before handling this tool.
  dependsOn: [ ]
  # options for the plugin
  options:
    scm:
      # scm common field
      branch: YOUR_REPO_BRANCH
      token: YOUR_REPO_SCM_TOKEN
      # you can directly use the url of repo (git@gitlab.com/root/test-exmaple.git for example)
      url: YOUR_REPO_URL
      # or you can config detailed fields for this repo
      owner: YOUR_REPO_OWNER
      org: YOUR_REPO_ORG
      name: YOUR_REPO_NAME
      scmType: gitlab
      # you can config this field if you are using self-host gitlab
      baseURL: YOUR_SELF_HOST_GITLAB_URL
    pipeline:
      # configLocation is the location of gitlab ci file, it can be remote or local address,
      # if you don't config this field, devstream will use https://raw.githubusercontent.com/devstream-io/dtm-pipeline-templates/main/gitlab-ci/.gitlab-ci.yml
      configLocation: .gitlabci.yml
      # language config is required
      language:
        framework: # support gin/flask/spring for now
        name: LANGUAGE # support go/java/nodejs/python for now
      imageRepo:
        # image repo URL for pulling/pushing
        url: http://harbor.example.com:80
        # image repo user name
        user: admin
        # image repo password
        password: YOUR_IMAGE_REPO_PASSWORD
    # whether create gitlab runner for this project
    # if runner.enable is true, devstream will use helm to install the project's runner
    # and diable shared runner of this project
    runner:
      enable: false

Notes:

  • scm config option represents codebase location; for more info, you can refer to SCM Config.
  • The pipeline config option controls CI stages; you can refer to Pipeline Config for more info.