Автоматизировать семвер в ConcourseCI - PullRequest
1 голос
/ 28 марта 2019

У меня есть конвейер ConcourseCI, который автоматически увеличивает мой номер версии, используя этот тип ресурса: https://github.com/concourse/semver-resource

Объявление моего ресурса выглядит так:

  - name: version
    type: semver
    source:
      driver: git
      initial_version: 0.0.1
      uri: {{version-repo-uri}}
      branch: {{version-repo-branch}}
      file: {{version-file}}
      private_key: {{git-key}}

И моя работа выглядит так:

- name: increment-version
    plan:
      - get: {{git-repo-name}}
        trigger: true
      - get: version
        params: {bump: patch}
      - put: version
        params: {file: version/version}

Итак, как вы можете видеть, сейчас я всегда сталкиваюсь с версией PATCH.Тем не менее, я хотел бы, чтобы в зависимости от обстоятельств простой и желательно автоматизированный способ для конвейера увеличивал версию MAJOR, MINOR, PATCH или RC.

Есть ли ловушка git или что-то подобное, которая будет знать, когдаподнять что?Какие-либо практические рекомендации по внедрению при автоматизации semver в конвейер?Любой другой тип ресурса Concourse, который я должен использовать вместо этого?Или это то, что мы должны определенно оставить на усмотрение человека?И в таком случае, как легко интегрировать этот «ручной» шаг в конвейер CD?

Самое близкое, что я могу придумать, это наличие файла версии в моем проекте (переданного в github) с предполагаемой версией,который установит номера MAJOR, MINOR, PATCH.Конвейер выбирает этот файл, каким-то образом использует его в качестве базы и только увеличивает числа RC, но это невероятно подвержено ошибкам.

Чтобы быть ясным, я не спрашиваю, как выпустить версии в теории, изначения того, что является основным, второстепенным или патчем.Я спрашиваю на практике, как реализовать эти рекомендации, перечисленные в https://semver.org/.

...