Nano Hash - криптовалюты, майнинг, программирование

Копирование артефакта сборки между узлами с помощью конвейера Jenkins

Я пытаюсь переместить существующие задания сборки Jenkins в один конвейер Jenkins 2 и задаюсь вопросом, можно ли копировать файлы с одного узла на другой в рамках сборки. Моя идея была бы такой:

Node A (Windows)
  Checkout scm
  Execute ant build
  Archive artifact (or whatever required action)
Node B (Unix)
  Checkout scm
  Copy build artifact from node A --> is this possible ?
  Execute ant build
  Then followed by tests...

Я попытался использовать этап копирования артефакта, но, похоже, он работал некорректно, поэтому мне интересно, есть ли способ скопировать файлы в середине конвейера, или мне нужно остаться с текущей сборкой архитектура (с использованием плагина копирования артефактов, но с полностью отдельными заданиями сборки ).


  • Добро пожаловать в stackoverflow. Вы можете просто включить в свою публикацию код, который, похоже, работает некорректно ... ;-) 07.06.2016
  • Я использовал step([$class: 'ArtifactArchiver', artifacts: 'dist/*.zip']) для архивации артефакта на первом узле и step([$class: 'CopyArtifact', filter: 'dist/*.zip', fingerprintArtifacts: true, projectName: 'PCT'), но артефакты, похоже, доступны только после окончания сборки 08.06.2016

Ответы:


1

Да, это возможно с помощью _ 1_ / _ 2_ шагов.

Учебное пособие по этому поводу также можно найти в блоге Jenkins ( ориентированы на параллельное выполнение):

parallel (
    "stream 1" : { 
                     node { 
                           unstash "binary"                           
                           sh "sleep 20s" 
                           sh "echo hstream1"
                       } 
                   },
    "stream 2" : { 
                     node { 
                           unstash "binary"
                           sh "echo hello2"
                           sh "hashtag fail"                                                       
                       } 
                   }
          )
07.06.2016
  • Не стесняйтесь дать дополнительный ответ. 12.06.2018
  • Все еще ищу :) Возможно, это stackoverflow.com/a/46567313/3679490? 12.06.2018
  • Я действительно хотел знать, можно ли его использовать для больших файлов. В документации Дженкинса говорится, что его следует использовать для файлов размером менее 5 МБ. Вы использовали его для больших файлов? Это будет работать? 12.06.2018
  • Это определенно будет работать и для больших файлов. Некоторое время мы использовали обычный (не) тайник, чтобы скопировать артефакты размером около 400 МБ до 8 агентов. Поскольку это затрудняло создание нескольких параллельных сборок, поскольку из-за этого мастер Jenkins практически не отвечал, мы реорганизовали наш конвейер, чтобы копировать файлы через S3 и не допустить участия мастера Jenkins в цикле. Но для начала (или если у вас не так много параллельных сборок) я действительно рекомендую начать с простого. Продолжайте и реализуйте свой конвейер, используя (un) stash. Если это становится проблемой, загрузите в какое-нибудь внешнее хранилище данных. 13.06.2018
  • Ничего особенного, только шаг s3Upload, предоставляемый подключаемым модулем Pipeline AWS Steps 13.06.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..