@@ -38,9 +38,18 @@ run-name: "Release: Build Sign Upload [${{ github.ref_name }}]"
38
38
39
39
on :
40
40
workflow_dispatch :
41
+ inputs :
42
+ release_version :
43
+ description : ' Release version bump'
44
+ required : true
45
+ default : ' patch'
46
+ type : choice
47
+ options :
48
+ - minor
49
+ - patch
41
50
42
51
permissions :
43
- contents : read
52
+ contents : write
44
53
45
54
defaults :
46
55
run :
@@ -50,39 +59,56 @@ jobs:
50
59
setup :
51
60
name : Setup
52
61
runs-on : ubuntu-latest
53
-
62
+ env :
63
+ VERSION_MAJOR : 8
54
64
outputs :
55
- aws-s3-bucket : " v${{ steps.parse-semver .outputs.version-major }}-cf-cli-releases"
65
+ aws-s3-bucket : " v${{ steps.bump-version .outputs.version-major }}-cf-cli-releases"
56
66
57
- version-build : ${{ steps.parse-semver .outputs.version-build }}
58
- version-major : ${{ steps.parse-semver.outputs.version-major }}
59
- version-minor : ${{ steps.parse-semver .outputs.version-minor }}
60
- version-patch : ${{ steps.parse-semver .outputs.version-patch }}
67
+ version-build : ${{ steps.bump-version .outputs.version-build }}
68
+ version-major : ${{ env.VERSION_MAJOR }}
69
+ version-minor : ${{ steps.bump-version .outputs.version-minor }}
70
+ version-patch : ${{ steps.bump-version .outputs.version-patch }}
61
71
62
72
steps :
63
73
- name : Checkout cli
64
74
uses : actions/checkout@v4
65
-
66
- - name : Check if VERSION_BUILD matches tag ${{ github.ref }}
75
+
76
+ - name : Bump version
77
+ id : bump-version
67
78
run : |
68
- echo "Git Ref: ${{ github.ref }}"
69
- echo "VERSION_BUILD: $(cat BUILD_VERSION)"
79
+ set -x
80
+ git fetch --tags --quiet
81
+ latest_tag="$(git tag | sort -V | grep v${VERSION_MAJOR} | tail -1)"
82
+ echo "Latest tag is ${latest_tag}"
70
83
71
- exit 0
84
+ version="${latest_tag#[vV]}"
72
85
73
- - name : Parse semver
74
- id : parse-semver
75
- run : |
76
- VERSION=$(cat BUILD_VERSION)
77
- VERSION="${VERSION#[vV]}"
86
+ version_minor="${version#*.}"
87
+ version_minor="${version_minor%.*}"
88
+ version_patch=${version##*.}
78
89
79
- VERSION_MINOR="${VERSION#*.}"
80
- VERSION_MINOR="${VERSION_MINOR%.*}"
90
+ if [ "${{ inputs.release_version }}" == "minor" ]; then
91
+ version_minor=$(($version_minor + 1))
92
+ version_patch=0
93
+ else
94
+ version_patch=$(($version_patch + 1))
95
+ fi
81
96
82
- echo "version-build=${VERSION}" >> "${GITHUB_OUTPUT}"
83
- echo "version-major=${VERSION%%\.*}" >> "${GITHUB_OUTPUT}"
84
- echo "version-minor=${VERSION_MINOR}" >> "${GITHUB_OUTPUT}"
85
- echo "version-patch=${VERSION##*.}" >> "${GITHUB_OUTPUT}"
97
+ new_version="${VERSION_MAJOR}.${version_minor}.${version_patch}"
98
+ echo "new version is ${new_version}"
99
+
100
+ echo "version-build=${new_version}" >> "${GITHUB_OUTPUT}"
101
+ echo "version-minor=${version_minor}" >> "${GITHUB_OUTPUT}"
102
+ echo "version-patch=${version_patch}" >> "${GITHUB_OUTPUT}"
103
+
104
+ - name : Publish Tag
105
+ run : |
106
+ new_tag="v${{ steps.bump-version.outputs.version-build }}"
107
+ echo "new version is $new_tag"
108
+ git config user.name "GitHub Actions"
109
+ git config user.email "[email protected] "
110
+ git tag -am "Bump cli version ${new_tag}" ${new_tag}
111
+ git push origin $new_tag
86
112
87
113
build-linux :
88
114
name : Build Linux
@@ -135,6 +161,8 @@ jobs:
135
161
${{ runner.os }}-go-
136
162
137
163
- name : Build Linux
164
+ env :
165
+ CF_BUILD_VERSION : ${VERSION_BUILD}
138
166
run : |
139
167
make out/cf-cli_linux_i686
140
168
make out/cf-cli_linux_x86-64
@@ -252,7 +280,6 @@ jobs:
252
280
name : cf-cli-linux-rpm-packages
253
281
path : signed-redhat-installer/*.rpm
254
282
255
-
256
283
- name : Build Debian Packages
257
284
env :
258
285
VERSION_BUILD : ${{ needs.setup.outputs.version-build }}
@@ -431,6 +458,8 @@ jobs:
431
458
${{ runner.os }}-go-
432
459
433
460
- name : Build macOS Binaries
461
+ env :
462
+ CF_BUILD_VERSION : ${VERSION_BUILD}
434
463
run : |
435
464
make out/cf-cli_osx
436
465
make out/cf-cli_macosarm
@@ -609,6 +638,8 @@ jobs:
609
638
go install github.com/akavel/[email protected]
610
639
611
640
- name : Build CF CLI for Windows
641
+ env :
642
+ CF_BUILD_VERSION : ${VERSION_BUILD}
612
643
run : |
613
644
Get-Command make
614
645
Get-Item Makefile
@@ -693,14 +724,12 @@ jobs:
693
724
694
725
- name : Zip Windows artifact
695
726
run : |
696
- # strip leading v to go from tag -> semver
697
- $installer_release_version="$(cat BUILD_VERSION)".Replace("v", "")
698
727
pushd "${env:RUNNER_TEMP}\win32"
699
- $installer_zip_filename="${env:RUNNER_TEMP}\cf${env:VERSION_MAJOR}-cli-installer_${installer_release_version }_win32.zip"
728
+ $installer_zip_filename="${env:RUNNER_TEMP}\cf${env:VERSION_MAJOR}-cli-installer_${env:VERSION_BUILD }_win32.zip"
700
729
Compress-Archive -DestinationPath "$installer_zip_filename" -Path *
701
730
popd
702
731
pushd "${env:RUNNER_TEMP}\winx64"
703
- $installer_zip_filename="${env:RUNNER_TEMP}\cf${env:VERSION_MAJOR}-cli-installer_${installer_release_version }_winx64.zip"
732
+ $installer_zip_filename="${env:RUNNER_TEMP}\cf${env:VERSION_MAJOR}-cli-installer_${env:VERSION_BUILD }_winx64.zip"
704
733
Compress-Archive -DestinationPath "$installer_zip_filename" -Path *
705
734
popd
706
735
Get-ChildItem "${env:RUNNER_TEMP}"
0 commit comments