Skip to content

Commit 7c02350

Browse files
author
kaixuanxu
committed
fix: json
1 parent 0129a69 commit 7c02350

1 file changed

Lines changed: 7 additions & 51 deletions

File tree

Lines changed: 7 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,27 @@
11
name: Validate template
22
description: Validate ADF template
3-
43
inputs:
54
path:
65
required: true
7-
description: Project root path
6+
description: Project root
87
directory:
98
required: false
109
description: Template directory
11-
default: ''
12-
1310
outputs:
1411
status:
15-
description: Validation exit code (0 = success, non-zero = failure)
16-
value: ${{ steps.validate-template.outputs.status }}
12+
description: Validate status
13+
value: ${{ fromJSON(steps.validate-template.outputs.result).status }}
1714
detail:
18-
description: Validation details or error message
19-
value: ${{ steps.validate-template.outputs.detail }}
20-
15+
description: Validate detail
16+
value: ${{ fromJSON(steps.validate-template.outputs.result).detail }}
2117
runs:
2218
using: composite
2319
steps:
2420
- name: Setup Deno environment
25-
uses: denoland/setup-deno@v2
21+
uses: denoland/setup-deno@v1
2622
with:
2723
deno-version: v1.x
2824

2925
- name: Validate template
3026
id: validate-template
31-
env:
32-
INPUT_PATH: ${{ inputs.path }}
33-
INPUT_DIRECTORY: ${{ inputs.directory }}
34-
shell: bash
35-
run: |
36-
set -euo pipefail
37-
38-
# Run validation script
39-
if ! result=$(deno run --allow-read "${{ github.action_path }}/src/main.ts" "${INPUT_PATH}" "${INPUT_DIRECTORY}" 2>&1); then
40-
echo "status=1" >> "$GITHUB_OUTPUT"
41-
# Handle multi-line error output using heredoc
42-
{
43-
echo "detail<<EOF"
44-
echo "Deno execution failed: ${result}"
45-
echo "EOF"
46-
} >> "$GITHUB_OUTPUT"
47-
exit 0 # Don't fail the step, let caller handle status
48-
fi
49-
50-
# Validate JSON output
51-
if ! echo "$result" | jq empty 2>/dev/null; then
52-
echo "status=1" >> "$GITHUB_OUTPUT"
53-
{
54-
echo "detail<<EOF"
55-
echo "Invalid JSON output from validation script: ${result}"
56-
echo "EOF"
57-
} >> "$GITHUB_OUTPUT"
58-
exit 0
59-
fi
60-
61-
# Extract status and detail from JSON response
62-
status=$(echo "$result" | jq -r '.status // 1')
63-
detail=$(echo "$result" | jq -r '.detail // "No details provided"')
64-
65-
echo "status=${status}" >> "$GITHUB_OUTPUT"
66-
# Handle potential multi-line detail content
67-
{
68-
echo "detail<<EOF"
69-
echo "${detail}"
70-
echo "EOF"
71-
} >> "$GITHUB_OUTPUT"
27+
run: echo "::set-output name=result::$(deno run --allow-read ${{ github.action_path }}/src/main.ts ${{ inputs.path }} ${{ inputs.directory }})"

0 commit comments

Comments
 (0)