Skip to content

Commit 6da049f

Browse files
committed
Port functions debug_log, log_content, log_output, and set_output to actions/version
1 parent 67a419c commit 6da049f

File tree

2 files changed

+50
-17
lines changed

2 files changed

+50
-17
lines changed

.github/actions/version/action.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ inputs:
77
default-branch:
88
description: "Name of main branch"
99
default: ${{ github.event.repository.default-branch }}
10-
debug:
11-
description: Default is to run in debug mode when the GitHub Actions step debug logging is turned on.
12-
default: ${{ runner.debug == '1' }}
1310
outputs:
1411
semver:
1512
description: "The full semantic version. Same as input.semver"
@@ -37,4 +34,3 @@ runs:
3734
env:
3835
INPUT_SEMVER: ${{ inputs.semver }}
3936
INPUT_DEFAULT_BRANCH: ${{ inputs.default-branch }}
40-
INPUT_DEBUG: ${{ inputs.debug }}

.github/actions/version/entrypoint.sh

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,54 @@ set -euo pipefail
33

44
semver="$INPUT_SEMVER"
55
default_branch="$INPUT_DEFAULT_BRANCH"
6-
debug="${INPUT_DEBUG:-false}"
76

87
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
1112
fi
1213
}
1314

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+
1454
parse_semver_component() {
1555
component=$(echo "$1" | cut -f"$2" -d.)
1656
if [ -z "$component" ]; then
@@ -33,13 +73,10 @@ debug_log "default_branch=$default_branch"
3373

3474
exists=$(check_git_tag_exists "$semver")
3575

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

Comments
 (0)