Go.CD - Обновление git-репо в конвейере сборки запускает другую сборку

Я пытаюсь обновить свое git-репо во время сборки GoCD. Это означает, что поскольку Go видит другое изменение, он запускает другую сборку. Можно ли остановить повторный запуск сборки?

Предыстория: я создаю и публикую npm-пакеты и хочу автоматически увеличить предварительную версию, чтобы мне не пришлось ее запоминать.

Мой конвейер выглядит в основном так:

npm version prerelease --no-git-tag-version
npm publish
git add package.json
git commit -m "Bump prerelease version"
git push origin

Это обновит версию в git, если публикация пройдет успешно, но также запустит другую сборку, так как Go опрашивает.

2 ответа

Решение

Сконфигурируйте инструмент CD/CI для сборки только при наличии фиксации в указанной ветви или, возможно, вы можете создать новую ветвь с именем "pre-release" и настроить CD/CI так, чтобы она не создавалась при фиксации.

Как только эта конфигурация сделана в инструменте CD/CI

npm version prerelease --no-git-tag-version
npm publish

// fetching for other branches
git fetch

// Switching your branch 
git checkout pre-release

// Finally committing
git add -m "Your commit message"
git push -u origin pre-release

Я надеюсь, что это сработает для вас:)

Вы можете настроить этапы в своем конвейере так, чтобы они запускались вручную, например, если вы настраивали свои конвейеры как код, в своем ${pipeline_name}.gocd.yaml,

  - deploy-to-next-stage:
      approval: manual            <-- You need this!
      jobs:
        deploy:
          tasks:
            ...

Это может помочь, поскольку вы можете запустить автоматическое развертывание на этапе разработки, а затем вручную перенести успешные сборки на следующий этап (возможно, перед выпуском). Таким образом, ваши сборки, которые сработали, не будут зависеть от новых сборок, инициируемых толчком к вашему репо.

Или вы могли бы поставить это на свой первый этап, и весь ваш конвейер не был бы вызван толчком к репо, но вместо этого вы направились в GUI и запустили его самостоятельно.

Другие вопросы по тегам