postgres-upgrade: halt if any stage of upgrade fails#890
Merged
alxndrsn merged 7 commits intogetodk:nextfrom Feb 13, 2025
Merged
postgres-upgrade: halt if any stage of upgrade fails#890alxndrsn merged 7 commits intogetodk:nextfrom
alxndrsn merged 7 commits intogetodk:nextfrom
Conversation
alxndrsn
commented
Feb 11, 2025
lognaturel
approved these changes
Feb 12, 2025
alxndrsn
commented
Feb 13, 2025
yanokwa
pushed a commit
to yanokwa/odk-central
that referenced
this pull request
Jun 11, 2025
Noted while working on getodk#882: `files/postgres/upgrade-postgres.sh` is not actually run with `/bin/bash -eu` as its shebang declares, but with `/bin/sh`. ----- This commit 1. fixes the shell used for `upgrade-postgres.sh` 2. introduces a test which would have detected this issue, and should prevent similar issues in future 3. fixes use of deprecated dockerfile syntax detected by the new test 4. pulls `shellcheck` invocation into a script file to allow easier use locally, and possible future extension ----- Docker build checks Currently in beta, "docker build checks" are best-practice lint checks for dockerfiles. See: https://docs.docker.com/build/checks/#check-a-build-without-building ----- Dockerfile fixes * `postgres-upgrade.dockerfile`: https://docs.docker.com/reference/build-checks/json-args-recommended/ * `postgres14.dockerfile`: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/ ----- Related: getodk#342
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Noted while working on #882:
files/postgres/upgrade-postgres.shis not actually run with/bin/bash -euas its shebang declares, but with/bin/sh.This PR
upgrade-postgres.shshellcheckinvocation into a script file to allow easier use locally, and possible future extensionDocker build checks
Currently in beta, "docker build checks" are a best-practice linter for dockerfiles.
See: https://docs.docker.com/build/checks/#check-a-build-without-building
Dockerfile fixes
postgres-upgrade.dockerfile: https://docs.docker.com/reference/build-checks/json-args-recommended/postgres14.dockerfile: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/Related: #342
What has been done to verify that this works as intended?
CI
Why is this the best possible solution? Were any other approaches considered?
Docker build checks are built-in to docker. However, they're in beta, so there is a chance they could be changed or dropped in future. This PR could be restricted to simply changing
postgres-upgrade.dockerfile.How does this change affect users? Describe intentional changes to behavior and behavior that could have accidentally been affected by code changes. In other words, what are the regression risks?
Should not affect users.
Does this change require updates to documentation? If so, please file an issue here and include the link below.
No.
Before submitting this PR, please make sure you have:
nextbranch OR only changed documentation/infrastructure (masteris stable and used in production)