Встановіть завдання Дженкінса, щоб не клонувати репо в SCM


17

Я інтегрував Дженкінса в Bitbucket, використовуючи плагін Bitbucket . Відповідно до Wiki плагіна, дане завдання буде запущено, якщо сховище буде встановлено в SCM завдання. Як відомо, якщо один встановити SCM в роботі Дженнінса, це буде клоновано на етапі попереднього збирання.

Все йде нормально. Однак основна мета роботи, яку я встановлюю, не має нічого спільного зі змістом сховища; натомість я просто хочу, щоб робота обробляла корисне навантаження, надіслане Bitbucket. Можна сказати, що клонувати сховище не дуже важливо в плані зберігання, незважаючи на те, що вам це справді не потрібно. Я не думаю, що додавання зайвих кроків, витрачання часу та ресурсів не є хорошою практикою.

Отже, питання полягає в тому, що хтось знає, як встановити СКМ у роботі Дженкінса, але заважає клонувати сховище?


2
Здається, ви намагаєтесь використовувати Дженкінса як мікро-сервіс, який виходить за рамки Дженкінса :). Повідомте назад, якщо ви працюєте цим, хоча це цікаво.
— Тревіс Томпсон

Я не використовую Дженкінса як мікросервіс. Чому ти це кажеш? Насправді все це є проблемою: я використовую трубопровідну роботу, яка є загальною для багатьох сховищ. Jenkinsfile знаходиться в іншому сховищі. Таким чином, я не можу запустити конвеєр безпосередньо з плагіном Bitbucket, тому що він просто не запускає його, тому я вирішив створити "завдання проксі" за репо, і надіслати інформацію в конвеєр як подальше завдання. У такій "проксі-роботі" мені не потрібно клонувати репо, але це потрібно в SCM.
— Héctor Valverde Pareja

Це дуже важко зрозуміти, і ти пишеш більше про те, що неможливо, ніж про те, чого ти насправді хочеш досягти.
— Майкл Ле Барб'є Грюневальд

Я думаю, ти говориш про мій коментар вище. Це просто відповідь на перший коментар. Будь ласка, зверніться до головного питання, нічого більше додати. Я хочу, щоб ви домоглися, дуже зрозуміло: "Забороніть Дженкінсу клонувати сховище під час збирання".
— Héctor Valverde Pareja

1
@ HéctorValverdePareja Зрозуміло, але ваше формулювання, здається, вагається між A / даванням достатньої кількості деталей, щоб кожен міг перевірити, чи перебуваєте ви в ситуації з XY-проблемою та B / просто зосередитись на тому, що саме ви хочете досягти. Я думаю (думка) ви могли б усунути це коливання, досить ретельно описавши свою первісну проблему та рішення, яке ви намагаєтесь реалізувати. Але тепер, коли хтось написав відповідь, це може бути вже не так важливим.
— Майкл Ле Барб'є Грюневальд

Відповіді:


19

Однозначно так. Я роблю це постійно. Ви можете вказати параметри конфігурації для вашого трубопроводу, і один з них - skipDefaultCheckoutце призводить до того, що конвеєр може пропустити типовий етап "Декларативний: Оформлення замовлення SCM".

Цей skipDefaultCheckoutпараметр задокументований у синтаксисі трубопроводу, і ось приклад Jenkinsfile, який показує, як ним користуватися:

pipeline {
  agent { label 'docker' }
  options {
    skipDefaultCheckout true
  }
  stages {
    stage('commit_stage') {
      steps {
        echo 'sweet stuff here'
      }
    }
  }
}

1
Як би ти. Ручне клонування сховища на етапі?
— Oz123

2
ви можете бігти checkout scmвручну клонувати там, де вам потрібно. див. devops.stackexchange.com/a/1916/2450 .
— burnettk

5

Якщо ви не використовуєте декларативний трубопровід, ви можете уникнути перевірки з SCM:

node {
        skipDefaultCheckout()
        //...
}

1
Чи можете ви додати посилання на документацію та пояснити більше про skipDefaultCheckout ()?
— 030

Я не бачу ніякої доданої вартості порівняно з існуючою відповіддю, це просто "спробуйте це" без пояснень і не гарної відповіді.
— Тенсібай

Ця відповідь чудово є доповненням до прийнятої відповіді - не всі користуватимуться декларативним плагіном Pipeline, тому це працює для тих, хто використовує процедурний.
— RichVel

1

Я думаю, що ви хочете досягти - це обробка корисного навантаження на веб-кукі в роботі Дженкінса. Використання плагіну bitbucket не буде необхідним, і, ймовірно, сильно створено для клонування репо.

Я вірю, що відповідь stackoverflow може вам допомогти.


Будь ласка, додайте відповідну цитату з цієї пов’язаної відповіді ...
— Pierre.Vriens

1
Ласкаво просимо до DevOps! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
— Річард Слейтер

@RichardSlater Я не впевнений у політиці щодо DevOps, але інші сайти роблять виняток для внутрішньомережевих посилань.
— пташенята

3
@chicks навіть посилання StackOverflow підлягають гниттю посилань і шляхом узагальнення питання він чітко вказує на інші причини, чому відповідач вважає, що на питання відповідає посилання.
— Річард Слейтер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.