DEV Community

jonasbn
jonasbn

Posted on

Release 0.21.0 of Spellcheck (GitHub) Action - a maintenance release and an architectural challenge

I got another PR for the Spellcheck Action from by automatic friend Dependabot.

I thought I would just squeeze out a fast release from my brand new laptop. Everything went smooth, local test went well and the Docker images were uploaded to DockerHub, the release was pushed to the GitHub Marketplace and I could jump to bed.

Next morning I had gotten a tweet and an issue from Chris Patterson (@chrispat).

Luckily the information provided me with sufficient details to spot the mistake:

Latest container version failing on runners due to architecture mismatch

I had:

  1. Applied the changes on my new laptop
  2. Build the new artefact on my new laptop
  3. Pushed the artefacts from my new laptop

So I checked out the repository via SSH on my old laptop, built using Docker and tested again. Tweaked the change log and made a bug fix release (0.21.1).

This time I tested that the pushed Docker image artefact prior to releasing it to the GitHub Marketplace and things worked, so I shipped a bug fix release.

I have updated my test notes and created an issue about automating the release process to minimize the risk of human error.

Below is the User Story describing, the automation task. I do however believe I might have some challenges being the only the maintainer, now the owner of the repository, but let's see where this takes us. Perhaps moving to GitHub Container Registry from DockerHub, can eliminate the need to share my secrets with the original author.

By reporting issues, sending tweets or contributing PRs you also automatically become my friend - just like dependabot.

Take care,

jonasbn

🔤 User Story

As a maintainer
I can build a Docker image automatically and have it uploaded to a container registry
so that I can make sure that it is built on a compatible platform

ℹī¸ Notes

  • Issue #79 demonstrated that it is better to have a automated build and release process to eliminate human error, in this case the human error was that the Docker image was build on a incompatible architecuture
  • Container registries could be one of:
    • DockerHub (currently uses)
    • GitHub Container Registry, ghcr for short
  • I is expected that at secret token is requested by the container registry chosen
    • This has tp be configured for the GitHub repository, this can be problematic since the repository is owned by somebody else than the current maintainer
  • Automated build is already in place, see: docker-build.yml

🆗 Acceptance Criteria

  • [ ] I can build automatically
  • [ ] I can push to a container registry
  • [ ] the built image is compatible with GitHub Actions

➡ī¸ Resources and References

  • N/A

Discussion (0)