This repository was archived by the owner on May 19, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathaction.yml
More file actions
99 lines (92 loc) · 2.96 KB
/
Copy pathaction.yml
File metadata and controls
99 lines (92 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
name: "Generate and upload openAPI docs"
description: "Generate and upload openAPI docs using Redocly CLI"
branding:
icon: "globe"
color: "gray-dark"
inputs:
output:
description: "openAPI output file"
required: false
default: "./open-api-docs.html"
input:
description: "Input file to use to generate openAPI docs"
required: true
default: ""
validate:
description: "Validate OpenAPI spec before generating docs"
required: false
default: "true"
redocly-version:
description: "Version of Redocly CLI to use"
required: false
default: "latest"
config:
description: "Path to the Redocly config file for linting"
required: false
node-version:
description: "Node.js version to use"
required: false
default: "22"
retention-days:
description: "Number of days to retain the artifact"
required: false
default: "90"
runs:
using: "composite"
steps:
- name: Checkout the latest code
id: git_checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: "${{ inputs.node-version }}"
- name: Install Redocly CLI
id: install_redocly
shell: bash
run: |
npm install -g @redocly/cli@${{ inputs.redocly-version }}
echo "✅ Redocly CLI version: $(redocly --version)"
- name: Validate OpenAPI spec
id: validate_spec
if: inputs.validate == 'true'
shell: bash
run: |
echo "Validating OpenAPI specification..."
CONFIG_ARG=""
if [ -n "${{ inputs.config }}" ]; then
CONFIG_ARG="--config ${{ inputs.config }}"
fi
redocly lint ${{ inputs.input }} $CONFIG_ARG
echo "✅ OpenAPI specification is valid"
- name: Generate OpenAPI docs
id: generate_docs
shell: bash
run: |
echo "Generating OpenAPI documentation..."
CONFIG_ARG=""
if [ -n "${{ inputs.config }}" ]; then
CONFIG_ARG="--config ${{ inputs.config }}"
fi
redocly build-docs ${{ inputs.input }} --output ${{ inputs.output }} $CONFIG_ARG
echo "✅ Documentation generated successfully"
- name: Check result
id: check_result
shell: bash
run: |
echo "Checking if documentation file exists..."
if [ ! -f ${{ inputs.output }} ]; then
echo "❌ Missing ${{ inputs.output }} from previous step."
exit 1
fi
echo "✅ Generated documentation file is valid"
echo "📄 File size: $(du -h ${{ inputs.output }} | cut -f1)"
## Upload the html file artifact
- name: Upload bundled html
id: upload_html_artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: open-api-bundle
path: |
${{ inputs.output }}
retention-days: ${{ inputs.retention-days }}