Tekton Pipelines

Чтобы настроить Tekton pipeline нужно сначала настроить Task. Мы будем использовать в качестве примера открытый репозиторий.

Рекомендуем сначала запустить Pipeline на нем, а уже потом адоптировать его под свои задачи.

Tekton Task

В файле необходимо правильно заполнить следующие переменные:

  1. ALLURE_ENDPOINT
  2. ALLURE_TOKEN
  3. ALLURE_PROJECT_ID

Создаем файл в рабочей директории с именем allure-example-test-task.yaml и следующим содержимым:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: allure-example-test
spec:
  params:
    - name: ALLURE_JOB_RUN_ID
      type: string
    - name: namespace
      type: string
    - name: pipelineName
      type: string
    - name: pipelineRunName
      type: string
  steps:
    - name: test
      image: gradle:jdk8
      script: |
        git clone <https://github.com/eroshenkoam/allure-example.git> && cd allure-example
        wget -q -O /usr/bin/allurectl <https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_linux_386> && chmod +x /usr/bin/allurectl
        allurectl watch -- ./gradlew clean test
      env: 
        - name: "ALLURE_ENDPOINT"
          value: "<https://where.is.allure.testops>"        
        - name: "ALLURE_TOKEN"
          value: "653458f1-4e6d-4afe-8190-394361d21f27"
        - name: "ALLURE_PROJECT_ID"
          value: "1"        
        - name: "ALLURE_CI_TYPE"
          value: "tekton"        
        - name: "ALLURE_LAUNCH_NAME"
          value: "$(params.pipelineName) - $(params.pipelineRunName)"        
        - name: "ALLURE_JOB_URL"
          value: "<https://tekton.qameta.space/#/namespaces/$(params.namespace)/pipelines/$(params.pipelineName)>"        
        - name: "ALLURE_JOB_UID"
          value: "$(params.namespace)/$(params.pipelineName)"        
        - name: "ALLURE_JOB_NAME"
          value: "$(params.pipelineName)"        
        - name: "ALLURE_JOB_RUN_ID"
          value: "$(params.ALLURE_JOB_RUN_ID)"        
        - name: "ALLURE_JOB_RUN_URL"
          value: "<https://tekton.qameta.space/#/namespaces/$(params.namespace)/pipelineruns/$(params.pipelineRunName)>"        
        - name: "ALLURE_JOB_RUN_UID"
          value: "$(params.pipelineRunName)"                
        - name: "ALLURE_JOB_RUN_NAME"
          value: "$(params.pipelineRunName)"                
        - name: "ALLURE_TESTPLAN_PATH"
          value: "./testplan.json"                
        - name: "ALLURE_RESULTS"
          value: "build/allure-results"

Загружаем содержимое файла в Tekton:

kubectl apply -f allure-example-test-task.yaml

Tekton Pipeline

Создаем файл в рабочей директории с именем allure-example-pipeline.yaml и следующим содержимым:

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: allure-example
spec:
  params:
    - description: Allure Job Run ID
      name: ALLURE_JOB_RUN_ID
      type: string
      default: ""
  tasks:
  - name: test
    taskRef:
      name: allure-example-test
    params:
      - name: ALLURE_JOB_RUN_ID
        value: "$(params.ALLURE_JOB_RUN_ID)" 
      - name: pipelineName
        value: "$(context.pipeline.name)" 
      - name: pipelineRunName
        value: "$(context.pipelineRun.name)" 
      - name: namespace
        value: "$(context.pipelineRun.namespace)"

Загружаем содержимое файла в Tekton:

kubectl apply -f allure-example-pipeline.yaml

Tekton Pipeline Run

Открываем Tekton Dashboard и переходим в раздел PipelineRuns