Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release workflow is easy to screw up #30

Closed
solvaholic opened this issue Dec 29, 2020 · 2 comments
Closed

Release workflow is easy to screw up #30

solvaholic opened this issue Dec 29, 2020 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@solvaholic
Copy link
Owner

What I did

I don't wanna talk about it.

What I expected to happen

:magic:

What happened instead

😢

I published octodns-sync v2.1.1 to the Marketplace before pushing the :2.1.1 Docker image and bumping the :2 tag to match it.

Additional info

After I screwed up v2.1.1 I made a release checklist to organize the steps and keep on track.

I'd like to trigger the release workflow on a single event.

I think triggering from release feels inside-out because it would publish the release before the rest of the work is done. Unless .. will a draft release trigger a workflow? That'd be sweet.

Otherwise I think it could work to build a workflow triggered on workflow_dispatch that'd do all the steps, given a branch to work with and a release number to generate.

Before spending much time on it, though, probably see how a few other projects automate release workflows.

@solvaholic solvaholic added the bug Something isn't working label Dec 29, 2020
@solvaholic
Copy link
Owner Author

In thinking about this I think automating any deployment could, in addition to simplifying the release workflow, also simplify the process of testing changes before merging to main.

I think of deployment, in this case, as:

  • Changes have been pushed to commit SHA abc1234
  • Build the Dockerfile at abc1234 and push it to ghcr.io with tag abc1234
  • Changes are available via docker pull and in workflow runs as, for example, octodns-sync@abc1234

Given that deployment, I think shipping abc1234 as a release could be as straightforward as pushing relevant Git and Docker image tags and publishing the release on the repository.

@solvaholic solvaholic self-assigned this Jan 1, 2021
solvaholic added a commit that referenced this issue Jan 2, 2021
rather than respond to them.

See also #30
@solvaholic
Copy link
Owner Author

With a61d444 I'm going to call this done-enough. At least for now.

Here are some assumptions I made along the way:

  • There's one person creating branches and releases this repository.

    While I would be thrilled to add collaborators, some central tooling relies on a personal access token I'm not comfortable sharing access to. So: Adding collaborators, if/when that time comes, may require changes to tooling.

  • It's OK to not push major version tags for Docker container images.

    Currently I do not envision using them, or requiring them for this Action. I mean the tags that would let a person run this to pull the most recent :2.x.x version of the image:

    docker pull ghcr.io/solvaholic/octodns-sync:2
    
  • It'll be OK to follow up separately to automate bumping of the repository's major version tags.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant