@@ -3,14 +3,54 @@ set -euo pipefail
3
3
4
4
semver=" $INPUT_SEMVER "
5
5
default_branch=" $INPUT_DEFAULT_BRANCH "
6
- debug=" ${INPUT_DEBUG:- false} "
7
6
8
7
debug_log () {
9
- if [ " $debug " = " true" ]; then
10
- echo " ##[debug]$1 "
8
+ if [ " ${RUNNER_DEBUG:- 0} " = " 1" ]; then
9
+ echo " $1 " | while IFS= read -r line; do
10
+ echo " ##[debug]$line "
11
+ done
11
12
fi
12
13
}
13
14
15
+ log_content () {
16
+ local content=" $1 "
17
+ local label=" ${2:- } "
18
+
19
+ if [[ -n " $label " ]]; then
20
+ # Replace the beginning of each line with two spaces
21
+ local indented_content=" ${content// $' \n ' / $' \n ' } "
22
+ printf " %s:\n %s\n" " $label " " $indented_content "
23
+ else
24
+ echo " $content "
25
+ fi
26
+ }
27
+
28
+ log_output () {
29
+ echo ::group::Set outputs
30
+ log_content " $( cat " $GITHUB_OUTPUT " ) " " GITHUB_OUTPUT"
31
+ log_content " $( cat " $GITHUB_ENV " ) " " GITHUB_ENV"
32
+ echo ::endgroup::
33
+ }
34
+
35
+ set_output () {
36
+ local value=" $1 "
37
+ local output_key=" $2 "
38
+ local env_key=" ${3:- } "
39
+
40
+ if [ -z " $value " ] || [ -z " $output_key " ]; then
41
+ echo " Missing essential arguments to set_output_and_env"
42
+ return 1
43
+ fi
44
+
45
+ # If env_key is empty, convert output_key to upper snake case
46
+ if [ -z " $env_key " ]; then
47
+ env_key=$( echo " $output_key " | awk ' {print toupper($0)}' | sed ' s/-/_/g' )
48
+ fi
49
+
50
+ echo " $output_key =$value " >> " $GITHUB_OUTPUT "
51
+ echo " $env_key =$value " >> " $GITHUB_ENV "
52
+ }
53
+
14
54
parse_semver_component () {
15
55
component=$( echo " $1 " | cut -f" $2 " -d.)
16
56
if [ -z " $component " ]; then
@@ -33,13 +73,10 @@ debug_log "default_branch=$default_branch"
33
73
34
74
exists=$( check_git_tag_exists " $semver " )
35
75
36
- {
37
- echo " semver=$semver "
38
- echo " major=$( parse_semver_component " $semver " 1) "
39
- echo " minor=$( parse_semver_component " $semver " 2) "
40
- echo " patch=$( parse_semver_component " $semver " 3) "
41
- echo " tag-exists=$exists "
42
- echo " releasable=$( [ " $GITHUB_REF " == " refs/heads/${default_branch} " ] && [ " $exists " == " false" ] && echo " true" || echo " false" ) "
43
- } >> " $GITHUB_OUTPUT "
44
-
45
- debug_log " GitHub Output: $( cat " $GITHUB_OUTPUT " ) "
76
+ set_output " $semver " " semver"
77
+ set_output " $( parse_semver_component " $semver " 1) " " major"
78
+ set_output " $( parse_semver_component " $semver " 2) " " minor"
79
+ set_output " $( parse_semver_component " $semver " 3) " " patch"
80
+ set_output " $exists " " tag"
81
+ set_output " $( [ " $GITHUB_REF " == " refs/heads/${default_branch} " ] && [ " $exists " == " false" ] && echo " true" || echo " false" ) " " releasable"
82
+ log_output
0 commit comments