Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,17 @@ jobs:
export PATH="$PWD/bin:$PATH"
make precommit

# Pin to Makefile SFETCH_VERSION (N-1 fully-signed release), never latest.
# Main CI after a release tag races incomplete asset uploads if dry-run
# follows latest (404 on platform archives still mid-matrix upload).
# Use `make print-sfetch-version` so make expands the pin (any semver shape).
- name: Test install script
run: bash scripts/install-sfetch.sh --dry-run
run: |
set -euo pipefail
TAG=$(make -s print-sfetch-version)
test -n "$TAG"
echo "Install smoke pin: $TAG (make print-sfetch-version)"
bash scripts/install-sfetch.sh --dry-run --tag "$TAG" --require-minisign

container-probe:
name: Install probe (container)
Expand Down
11 changes: 11 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ SCOOP_BUCKET_REPO ?= https://github.com/3leaps/scoop-bucket.git
BIN_DIR := $(CURDIR)/bin

# Pinned tool versions (every gate/release tool is version-pinned; no @latest)
# SFETCH_VERSION is the N-1 self-bootstrap pin AND the CI install-script smoke
# pin (see .github/workflows/ci.yml). Always a fully-signed published release —
# never "latest" and never the in-flight cut — so main CI cannot 404 during the
# tag/upload window. Advance after each release publishes + signs.
SFETCH_VERSION := v0.4.8
GONEAT_VERSION ?= v0.5.15
GOVULNCHECK_VERSION ?= v1.6.0
Expand All @@ -57,9 +61,16 @@ CORPUS_DEST ?= test-corpus
.PHONY: release-verify-key release-verify-minisign-pubkey release-verify-keys release-verify-signatures
.PHONY: release-clean bootstrap-script build-all gosec gosec-high update-scoop-manifest
.PHONY: version-check version-set version-patch version-minor version-major
.PHONY: print-sfetch-version

all: build

# Echo SFETCH_VERSION via make (not shell parsing of Makefile). CI install smoke
# and other tools should use this so patch/minor/major pin values always expand
# correctly regardless of assignment form or version shape.
print-sfetch-version: ## Print bootstrap/CI smoke pin (SFETCH_VERSION)
@echo $(SFETCH_VERSION)

help: ## Show this help
@echo "sfetch - secure, verifying binary fetcher for GitHub releases"
@echo ""
Expand Down