Tidy install scripts, standardize CI Dockerfiles, add linting#23
Merged
Conversation
- Standardize test Dockerfiles: use `COPY .` everywhere (the `COPY ../.` variants pointed outside the build context and only passed by luck), and switch Ubuntu to `apt-get update && apt-get install` instead of the non-standard `apt install --update`. - Each Dockerfile now asserts the install actually landed (symlinks + gitissue function) rather than just that `make` exited 0. - Drop the `which` dependency: use `command -v` in the install scripts, which also lets the Arch test image stop installing `which`. - Add `set -e` to 07-last-touches.sh to match the other scripts. - Add a CI lint job (shellcheck + fish --no-execute) with a .shellcheckrc documenting the intentional idioms. - Minor: gitissue uses `git checkout -b`; fish files use idiomatic `set -gx` instead of the export shim.
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.
Cleanup pass over the install path and CI. No behavior change to the configs themselves beyond minor idiom fixes.
Test Dockerfiles
COPY . /workspacein all four. Three of them usedCOPY ../., which references a path above the build context and only passed because buildkit normalizes it — plaindocker buildwould reject it.apt-get update && apt-get install -yinstead of the non-standardapt install --update(only valid on apt ≥2.4, andaptwarns it has no stable scripting interface).gitissuefunction loads) instead of only checking thatmakeexited 0.which.Install scripts
command -vinstead ofwhichin01-install-packages.shand07-last-touches.sh— drops a hidden dependency that isn't present by default everywhere.07-last-touches.shgetsset -eto match the other scripts.CI linting
lintjob runsshellcheckover the shell scripts andfish --no-executeover the fish files..shellcheckrcdocuments and silences the intentional idioms (thecond && a || bcolour picker, interactivereadprompts,printfwith unicode), so the gate surfaces real issues.Minor
gitissueusesgit checkout -binstead ofgit branch+git checkout.set -gxinstead of the bash-compatexportshim.Validation
Ran
shellcheckclean locally, and built the Alpine and Ubuntu images end-to-end (fullmake+ the new verification step) — both pass.