Жодна з цих відповідей мені не була достатньою, використовуючи плагін Jenkins CI v.1.555, плагін Git Client v.1.6.4 та плагін Git 2.0.4.
Я хотів, щоб робота була створена для одного сховища Git для одного конкретного, фіксованого (тобто, не параметризованого) тегу. Мені довелося спільно обробляти рішення з різних відповідей плюс повідомлення про блог "побудувати тег Git", на яке посилається Тіло .
- Переконайтеся, що ви натискаєте тег до віддаленого сховища
git push --tags
- У розділі "Git Repository" вашої роботи під заголовком "Управління вихідним кодом" натисніть "Додатково".
- У поле для Refspec додайте наступний текст:
+refs/tags/*:refs/remotes/origin/tags/*
- У розділі "Гілки для побудови", "Специфікатор гілки" поставте
*/tags/<TAG_TO_BUILD>
(замінивши <TAG_TO_BUILD>
власне ім'я тегу).
Додавання Refspec для мене виявилося критичним. Хоча здавалося, що сховища git отримують всю віддалену інформацію за замовчуванням, коли я залишаю її порожньою, плагін Git все-таки не зможе знайти мій тег. Тільки коли я чітко вказав "отримати віддалені теги" в полі Refspec, плагін Git міг ідентифікувати та створювати з мого тегу.
Оновлення 2014-5-7 : На жаль, дане рішення має небажаний побічний ефект для Jenkins CI (v.1.555) та механізму сповіщення репозиторію Git à la Stash Webhook до Jenkins : будь-коли оновлюється будь- яка гілка репозиторію під час натискання завдання для створення тегів також знову запустяться. Це призводить до багато зайвих повторних збірок одних і тих же завдань тегів. Я спробував налаштувати завдання як за допомогою, так і без опції «Примусове опитування за допомогою робочої області», і, здавалося, це не дало ефекту. Єдиний спосіб, який я міг би запобігти Дженкінсу робити зайві складання для завдань тегів, - це очистити поле Refspec (тобто видалити +refs/tags/*:refs/remotes/origin/tags/*
).
Якщо хтось знайде більш елегантне рішення, будь ласка, відредагуйте цю відповідь оновленням. Я підозрюю, наприклад, що, можливо, цього не відбудеться, якби конкретний респект був, +refs/tags/<TAG TO BUILD>:refs/remotes/origin/tags/<TAG TO BUILD>
а не загальним зірочкою. Поки що це рішення працює для нас, ми просто видаляємо додатковий Refspec після того, як робота буде успішною.