diff --git a/packaging/void/build-release.sh b/packaging/void/build-release.sh index c3a7625..f3381cf 100755 --- a/packaging/void/build-release.sh +++ b/packaging/void/build-release.sh @@ -310,8 +310,9 @@ run_pipeline() { git -C "$ROOT" diff --quiet -- packaging/void/srcpkgs || fail "the build changed the committed templates" fi - mkdir -p "$OUT" + mkdir -p "$OUT/sdist" OUT=$(cd "$OUT" && pwd) + cp "$WORK/inputs/$SDIST_NAME" "$OUT/sdist/$SDIST_NAME" phase_sign phase_install verify_set diff --git a/tests/test_void_release_build.py b/tests/test_void_release_build.py index 8a4c4d4..b78d3ab 100644 --- a/tests/test_void_release_build.py +++ b/tests/test_void_release_build.py @@ -557,3 +557,11 @@ def test_smoke_is_the_same_path_with_a_throwaway_key() -> None: assert "XBPS_SIGNING_KEY" not in text release = _code(BUILD_RELEASE) assert "throwaway.pem" in release and "genrsa" in release + + +def test_the_sdist_is_staged_for_publication_before_the_completeness_check() -> None: + """The publish set is DIR/sdist plus DIR/xbps; the sdist must be copied there first.""" + pipeline = _body(_code(BUILD_RELEASE), "run_pipeline") + assert 'mkdir -p "$OUT/sdist"' in pipeline + assert 'cp "$WORK/inputs/$SDIST_NAME" "$OUT/sdist/$SDIST_NAME"' in pipeline + assert pipeline.index('cp "$WORK/inputs/') < pipeline.index("verify_set"), "stage, then verify"