Рекомендации по созданию релизов с помощью действий / рабочих процессов Github

#github #release #github-actions

#github #выпуск #github-действия

Вопрос:

В настоящее время мы изучаем действия Github (на Github Enterprise), и мне было интересно, есть ли какие-либо рекомендации о том, как наилучшим образом создавать релизы с помощью действий Github.

Чего мы хотим достичь:

  • Каким-либо образом вручную запускать / утверждать / «продвигать» релиз
  • создавайте артефакты с чистой семантической версией, например, 1.2.3
  • создавайте (не связанные с выпуском) моментальные снимки с уникальными промежуточными версиями, например 1.2.3-dev.14667 f39a61d (как создано плагином Nebula Release для сборок Gradle)
  • отметьте выпущенный коммит
  • для нас нормально заново создавать код для выпуска, чтобы получить правильную версию выпуска (не обязательно продвигать те же артефакты, которые были созданы ранее)
  • необязательно: ограничить выпуски выпуском и основными ветвями

Я экспериментировал с функцией выпуска Github и зарегистрировал действие сборки для этого события, которое затем создает созданную версию. Ниже приведена упрощенная версия этого рабочего процесса:

 name: Build Release

on:
  release:
    types: [ published ]

jobs:
  build:

    runs-on: [ self-hosted ]

    steps:
    - name: "Building release"
      run: echo Building release version ${{ github.event.release.tag_name }}
    - name: Build with Gradle
      run: ./gradlew build publish -Prelease.version=${{ github.event.release.tag_name }}
  

Таким образом, вы можете создать новый выпуск, создав выпуск на Github, добавив все детали и опубликовав его. Затем запускается сборка и создаются соответствующие артефакты.

Хотя этот рабочий процесс в порядке, мне было интересно, есть ли какие-либо другие рекомендации по созданию релизов. Я не смог найти ни одного, и поиски в этой теме всегда приводят к отдельным действиям Github, но не к обсуждениям более высокого уровня.