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

Incident report: Docker Hub container tagged as "v3.3.1-0" contained grocy version 3.3.0 #168

Closed
2 of 3 tasks
jayaddison opened this issue Jun 25, 2022 · 2 comments
Closed
2 of 3 tasks

Comments

@jayaddison
Copy link
Contributor

jayaddison commented Jun 25, 2022

Timeline:

  • 2022-06-10 - 🚀 grocy v3.3.1 released
  • 2022-06-13 - 🔧 container upgrade to v3.3.1-0 prepared - code diff here
  • 2022-06-13 - 🔬 QA/testing passes, based on Makefile-built images
  • 2022-06-13 - 🚀 container release v3.3.1-0 tagged and released to Docker Hub (GHA job log here)
  • 2022-06-13 - ⚠️ We now have a container image tagged as v3.3.1-0 on Docker Hub that contains application version 3.3.0
  • 2022-06-25 - 🚨 Update Grocy version in GitHub Actions #167 is received, fixing the incorrect version number
  • 2022-06-25 - 🚀 container release v3.3.1-1 tagged and released with the fix in place

What went wrong:

  • Human error: not all version numbers in the grocy-docker.git repository were updated before the v3.3.1-0 release took place
  • Inconsistency: Testing was performed using a different build process from the container upload build process
  • Inconsistency: Our GHA build and upload process proceeds and passes even if the GROCY_VERSION is not a prefix of the git tag being published

Recommended improvements:

Related: #109 (release automation)

cc @berrnd @manheraz

I also wonder whether there is a communication / participation problem. If I were a more active maintainer, I would probably participate on the grocy subreddit and reply to the release threads to inform people about container updates, perhaps making them more popular and helping to get feedback about issue reports more quickly.

That said: my sense at the moment is that the linuxserver images are more popular, and I'm personally fine with that - it seems likely that they have a more automated release process.

@jayaddison
Copy link
Contributor Author

Ensure that the image build process uses the same grocy version contained in the grocy-docker git tag

I think we can use GHA scripts to do this by writing to the GITHUB_ENV environment file.

We'd read ${{ github.event.release.tag_name }} as our input value -- in this case, v3.3.1-0 -- and aim to safely output GROCY_VERSION=v3.3.1 into the file.

The buildah-build action that we're using doesn't populate build arguments (like ARG GROCY_VERSION) from environment variables from what I understand, so we need to pass the version to it as an argument.

We can do that, I think, by editing the build-args to supply GROCY_VERSION=${{ env.GROCY_VERSION }}

@jayaddison
Copy link
Contributor Author

With #169 adding logic to determine the grocy app version from the container git tag, I don't think we should see this happen again.

About this item in the recommendation list:

Investigate using identical build processes for QA and container upload

Using the same build process for QA as publication looks tricky, for various reasons. It may make sense to spend more time on that in future, but I think that the immediate problem here has been resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant