Skip to content

Commit c13cdd2

Browse files
committed
fixup! release: create initial Windows installer build workflow
Update the tag version validation to correctly look for release candidates in the version string. The `rcN` part optionally appears after x.y.z[.rcN] and not at the end of the entire VFS-version string. Also note that the tag looks like `-rcN` (with a dash), but the output from the version generation script is `.rcN` (with a period). Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
1 parent 54bbd4a commit c13cdd2

1 file changed

Lines changed: 23 additions & 14 deletions

File tree

.github/workflows/build-git-installers.yml

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ jobs:
2323
- name: Validate tag
2424
run: |
2525
echo "$GITHUB_REF" |
26-
grep -E '^refs/tags/v2\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.vfs\.0\.(0|[1-9][0-9]*)(\.rc[0-9])?$' || {
27-
echo "::error::${GITHUB_REF#refs/tags/} is not of the form v2.<X>.<Y>.vfs.0.<W>[.rc<N>]" >&2
26+
grep -E '^refs/tags/v2\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-rc[0-9]+)?\.vfs\.0\.(0|[1-9][0-9]*)$' || {
27+
echo "::error::${GITHUB_REF#refs/tags/} is not of the form v2.<X>.<Y>[-rc<N>].vfs.0.<W>" >&2
2828
exit 1
2929
}
3030
- name: Determine tag to build
@@ -49,8 +49,11 @@ jobs:
4949
5050
# Verify tag follows rules in GIT-VERSION-GEN (i.e., matches the specified "DEF_VER" in
5151
# GIT-VERSION-FILE) and matches tag determined from trigger
52-
make GIT-VERSION-FILE
53-
test "${{ steps.tag.outputs.version }}" == "$(sed -n 's/^GIT_VERSION *= *//p'< GIT-VERSION-FILE)" || die "GIT-VERSION-FILE tag ($(cat GIT-VERSION-FILE)) does not match ${{ steps.tag.outputs.name }}"
52+
make GIT-VERSION-FILE
53+
expected_version="${{ steps.tag.outputs.version }}"
54+
# Convert -rc to .rc to match GIT-VERSION-FILE format
55+
expected_version="${expected_version//-rc/.rc}"
56+
test "$expected_version" == "$(sed -n 's/^GIT_VERSION *= *//p'< GIT-VERSION-FILE)" || die "GIT-VERSION-FILE tag ($(cat GIT-VERSION-FILE)) does not match ${{ steps.tag.outputs.name }}"
5457
# End check prerequisites for the workflow
5558

5659
# Build Windows installers (x86_64 & aarch64; installer & portable)
@@ -474,8 +477,11 @@ jobs:
474477
# Trace execution, stop on error
475478
set -ex
476479
480+
# Convert -rc to .rc to match GIT-VERSION-FILE behavior
481+
BUILD_VERSION=$(echo "${VERSION}" | sed 's/-rc/.rc/g')
482+
477483
# Write to "version" file to force match with trigger payload version
478-
echo "${{ needs.prereqs.outputs.tag_version }}" >>git/version
484+
echo "${BUILD_VERSION}" >>git/version
479485
480486
# Configure universal build
481487
cat >git/config.mak <<EOF
@@ -508,20 +514,20 @@ jobs:
508514
509515
make -C git -j$(sysctl -n hw.physicalcpu) GIT-VERSION-FILE dist dist-doc
510516
511-
export GIT_BUILT_FROM_COMMIT=$(gunzip -c git/git-$VERSION.tar.gz | git get-tar-commit-id) ||
517+
export GIT_BUILT_FROM_COMMIT=$(gunzip -c git/git-$BUILD_VERSION.tar.gz | git get-tar-commit-id) ||
512518
die "Could not determine commit for build"
513519
514520
# Extract tarballs
515521
mkdir payload manpages
516-
tar -xvf git/git-$VERSION.tar.gz -C payload
517-
tar -xvf git/git-manpages-$VERSION.tar.gz -C manpages
522+
tar -xvf git/git-$BUILD_VERSION.tar.gz -C payload
523+
tar -xvf git/git-manpages-$BUILD_VERSION.tar.gz -C manpages
518524
519525
# Lay out payload
520-
cp git/config.mak payload/git-$VERSION/config.mak
526+
cp git/config.mak payload/git-$BUILD_VERSION/config.mak
521527
make -C git/.github/macos-installer V=1 payload
522528
523529
# Codesign payload
524-
cp -R stage/git-universal-$VERSION/ \
530+
cp -R stage/git-universal-$BUILD_VERSION/ \
525531
git/.github/macos-installer/build-artifacts
526532
make -C git/.github/macos-installer V=1 codesign \
527533
APPLE_APP_IDENTITY='${{ steps.signing-secrets.outputs.appsign-id }}' || die "Creating signed payload failed"
@@ -597,11 +603,14 @@ jobs:
597603
exit 1
598604
}
599605
600-
echo "${{ needs.prereqs.outputs.tag_version }}" >>git/version
601-
make -C git GIT-VERSION-FILE
602-
603606
VERSION="${{ needs.prereqs.outputs.tag_version }}"
604607
608+
# Convert -rc to .rc to match GIT-VERSION-GEN behavior
609+
BUILD_VERSION=$(echo "$VERSION" | sed 's/-rc/.rc/g')
610+
echo "${BUILD_VERSION}" >>git/version
611+
612+
make -C git GIT-VERSION-FILE
613+
605614
ARCH="$(dpkg-architecture -q DEB_HOST_ARCH)"
606615
if test -z "$ARCH"; then
607616
die "Could not determine host architecture!"
@@ -768,7 +777,7 @@ jobs:
768777
shell: bash
769778
run: |
770779
"${{ matrix.component.command }}" --version | sed 's/git version //' >actual
771-
echo ${{ needs.prereqs.outputs.tag_version }} >expect
780+
echo "${{ needs.prereqs.outputs.tag_version }}" | sed 's/-rc/.rc/g' >expect
772781
cmp expect actual || exit 1
773782
774783
- name: Validate universal binary CPU architecture

0 commit comments

Comments
 (0)