Improve Go release automation

XMLWordPrintableJSON

    • Type: Epic
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: Build
    • None
    • Release automation
    • Go Drivers
    • None
    • Hide
      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?
      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • To Do
    • None
    • 0
    • 0
    • 0
    • 100
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Summary

      Make the Go Driver release automation more reliable, easier to use, and easier to debug.

      Currently the Go Driver release automation uses a series of Github Actions to perform the Go release. In the past year, some of those of those Github Actions have failed after the Git tag was created. When that happens, the release is publicly consumable by Go users but none of the other artifacts are created (e.g. the Github draft release, the SBOM files, the community forum template, etc). In that case, Go Driver devs need to either create a new release with a new version, or manually create all of the missing artifacts. Instead, we should make at least the tagging action idempotent, so that a failed release can be re-run, even if the tag is already created.

      Additionally, there are quality-of-life improvements we should investigate:

      • Investigate using release-please to completely automate release note creation
      • Copy Andreas's automatic-merge-up-action into drivers-github-tools so we're not relying on a 3rd-party Github Action for release.
      • Consider using a temp tag or branch during release to make sure everything is ready before the official tag is created and pushed.
      • Add helpful logging to the Github Actions we use to release the Go Driver so when things do fail, it's easier to identify the root cause.

      Motivation

      Who is the affected end user?

      Go Driver devs directly, Go Driver users indirectly.

      How does this affect the end user?

      Go Driver devs lose productivy because they have to investigate Github Action failures, most of which can't be resolved by just re-running the job. Many failures require inefficient debugging because there isn't enough information logged by the Github Actions to quickly identify the root cause of the failure.

      Go Driver users don't get timely releases because Go Driver devs are stuck investigating and cleaning up after failures.

      How likely is it that this problem or use case will occur?

      Release failuers have happened 3-4 times in the last 6 months.

      If the problem does occur, what are the consequences and how severe are they?

      Lost development time, both for Go Driver devs and users.

      Is this issue urgent?

      No.

      Is this ticket required by a downstream team?

      No.

      Is this ticket only for tests?

      No.

      Cast of Characters

      Engineering Lead:
      Document Author:
      POCers:
      Product Owner:
      Program Manager:
      Stakeholders:

      Channels & Docs

      Slack Channel

      [Scope Document|some.url]

      [Technical Design Document|some.url]

            Assignee:
            Unassigned
            Reporter:
            Matt Dale
            None
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              None
              None
              None
              None
              None
              None