Skip to content

ci: vendor bashunit instead of installing via curl#5799

Closed
Chemaclass wants to merge 1 commit into
phpstan:2.1.xfrom
Chemaclass:vendor-bashunit
Closed

ci: vendor bashunit instead of installing via curl#5799
Chemaclass wants to merge 1 commit into
phpstan:2.1.xfrom
Chemaclass:vendor-bashunit

Conversation

@Chemaclass
Copy link
Copy Markdown
Contributor

@Chemaclass Chemaclass commented Jun 3, 2026

Vendors bashunit 0.37.0 as e2e/bashunit and runs it directly, dropping the curl | bash install step from both E2E jobs.

Why

  • Deterministic, pinned bashunit release committed in the repo — same version for local and CI testing.
  • No network dependency on bashunit.typeddevs.com during CI.
  • No curl piped into bash.

Changes

  • Add e2e/bashunit (v0.37.0, executable).
  • Remove e2e/bashunit from .gitignore.
  • Drop both Install bashunit curl steps in .github/workflows/e2e-tests.yml.

Verify the committed file

The vendored binary matches the official bashunit 0.37.0 release. See the Verify section of the docs. To check the sha256 locally:

DIR="e2e"; KNOWN_HASH="18f1e8354213001b80e37c722b8520ebe26ce10fce11cb20ee471ddc96a21b11"; FILE="$DIR/bashunit"; [ "$(shasum -a 256 "$FILE" | awk '{ print $1 }')" = "$KNOWN_HASH" ] && echo "bashunit verified." || echo "bashunit corrupt"
Screenshot 2026-06-03 at 15 06 02

Save bashunit 0.37.0 as e2e/bashunit and run it directly, dropping the
curl-piped install step from both E2E jobs.
@ondrejmirtes
Copy link
Copy Markdown
Member

I don't love commited code in the repository that isn't ours. Perhaps we could download it on demand from https://github.com/TypedDevs/bashunit/releases?

@ondrejmirtes
Copy link
Copy Markdown
Member

Also you could make your releases immutable if they're not yet :) https://docs.github.com/en/code-security/concepts/supply-chain-security/immutable-releases

@Chemaclass
Copy link
Copy Markdown
Contributor Author

@ondrejmirtes ah, alright, then I will just dump the release to latest in a new PR

@Chemaclass Chemaclass closed this Jun 3, 2026
@Chemaclass Chemaclass deleted the vendor-bashunit branch June 3, 2026 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants