forked from docs/doc-exports
adding statistics and url
This commit is contained in:
@ -87,23 +87,70 @@ jobs:
|
||||
echo "$url was changed"
|
||||
done <<< "${{ steps.changed-urls.outputs.changed_urls }}"
|
||||
|
||||
- name: Validate OpenAPI files
|
||||
- name: Validate OpenAPI files + show validation results
|
||||
env:
|
||||
OPENAPI_TOKEN: ${{ secrets.OPENAPI_TOKEN }}
|
||||
run: |
|
||||
set -e
|
||||
|
||||
while IFS= read -r url; do
|
||||
[ -z "$url" ] && continue
|
||||
echo "$(jq -n --arg path "$url" '{path: $path, export: "xml", ruleset: "default"}')"
|
||||
|
||||
echo "Validating $url"
|
||||
echo "=============================="
|
||||
echo "Validating: $url"
|
||||
|
||||
curl -sS -X POST "https://openapi-validator.eco-preprod.tsi-dev.otc-service.com/api/validate" \
|
||||
# --- 1. trigger validation ---
|
||||
VALIDATION_RESPONSE=$(curl -sS -X POST "https://openapi.example.com/api/validate" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer $OPENAPI_TOKEN" \
|
||||
-d "$(jq -n \
|
||||
--arg path "$url" \
|
||||
'{path: $path, export: "xml", ruleset: "default"}')"
|
||||
'{path: $path, export: "xml", ruleset: "default"}')")
|
||||
|
||||
echo "Validation response:"
|
||||
echo "$VALIDATION_RESPONSE"
|
||||
|
||||
# --- 2. extract launch id ---
|
||||
LAUNCH_UUID=$(echo "$VALIDATION_RESPONSE" | jq -r '.launch.id // empty')
|
||||
|
||||
if [ -z "$LAUNCH_UUID" ]; then
|
||||
echo "❌ Could not extract launch id"
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "Launch ID: $LAUNCH_ID"
|
||||
|
||||
# --- 3. fetch launch details ---
|
||||
LAUNCH_DETAILS=$(curl -sS \
|
||||
-H "Authorization: Bearer $OPENAPI_TOKEN" \
|
||||
"https://openapi.example.com/api/reportportal?project=openapi&launchId=$LAUNCH_UUID")
|
||||
|
||||
echo "Launch details:"
|
||||
echo "$LAUNCH_DETAILS"
|
||||
|
||||
# --- 4. extract statistics ---
|
||||
STATUS=$(echo "$LAUNCH_DETAILS" | jq -r '.status')
|
||||
TOTAL=$(echo "$LAUNCH_DETAILS" | jq -r '.statistics.executions.total')
|
||||
PASSED=$(echo "$LAUNCH_DETAILS" | jq -r '.statistics.executions.passed')
|
||||
FAILED=$(echo "$LAUNCH_DETAILS" | jq -r '.statistics.executions.failed')
|
||||
SKIPPED=$(echo "$LAUNCH_DETAILS" | jq -r '.statistics.executions.skipped')
|
||||
|
||||
# Fetch Launch ID
|
||||
LAUNCH_ID=$(echo "$LAUNCH_DETAILS" | jq -r '.id')
|
||||
|
||||
# fallback if API doesn't return UI link
|
||||
REPORT_URL="https://reportportal-dev.tsi-dev.otc-service.com/ui/#openapi/launches/all/$LAUNCH_ID"
|
||||
|
||||
# --- 5. summary ---
|
||||
echo ""
|
||||
echo "📊 Validation summary"
|
||||
echo "Status: $STATUS"
|
||||
echo "Total: $TOTAL"
|
||||
echo "Passed: $PASSED"
|
||||
echo "Failed: $FAILED"
|
||||
echo "Skipped: $SKIPPED"
|
||||
echo "Report: $REPORT_URL"
|
||||
echo "=============================="
|
||||
echo
|
||||
done <<< "${{ steps.changed-urls.outputs.changed_urls }}"
|
||||
|
||||
done <<< "${{ steps.changed-urls.outputs.changed_urls }}"
|
||||
|
||||
Reference in New Issue
Block a user