Встановіть завдання Дженкінса, щоб не клонувати репо в 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.