Skip to content

Commit 34d58bc

Browse files
committed
feat(helm): generate docs can generate values json schema
Signed-off-by: Emilien Escalle <emilien.escalle@escemi.com>
1 parent 7909367 commit 34d58bc

1 file changed

Lines changed: 36 additions & 21 deletions

File tree

actions/helm/generate-docs/action.yml

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@ inputs:
1717
values-file:
1818
description: |
1919
Path to the values file to use for generating the documentation.
20-
If not provided, it will use the default values file.
20+
See <https://github.com/losisin/helm-values-schema-json-action>.
2121
required: false
22-
default: "values.yaml"
2322
github-token:
2423
description: |
2524
GitHub Token to create and merge pull request.
@@ -41,27 +40,42 @@ inputs:
4140
runs:
4241
using: "composite"
4342
steps:
44-
- shell: bash
45-
id: prepare-variables
46-
run: |
47-
if [ ! -d "${{ inputs.working-directory }}" ]; then
48-
echo "The working directory '${{ inputs.working-directory }}' does not exist."
49-
exit 1
50-
fi
51-
working_directory=$(realpath "${{ inputs.working-directory }}")
43+
- id: prepare-variables
44+
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
45+
with:
46+
script: |
47+
const { existsSync, realpathSync } = require('node:fs');
48+
const { basename, isAbsolute, join } = require('node:path');
49+
50+
let workingDirectory = ${{ toJson(inputs.working-directory) }};
51+
if (!workingDirectory || !workingDirectory.length) {
52+
return core.setFailed("Input 'working-directory' is required.");
53+
}
54+
55+
if (!existsSync(workingDirectory)) {
56+
return core.setFailed(`Working directory '${workingDirectory}' does not exist.`);
57+
}
58+
59+
workingDirectory = realpathSync(workingDirectory);
60+
core.setOutput("working-directory", workingDirectory);
61+
core.setOutput("working-directory-name", basename(workingDirectory));
5262
53-
echo "working-directory=${{ inputs.working-directory }}" >> "$GITHUB_OUTPUT"
54-
echo "working-directory-name=$(basename "${{ inputs.working-directory }}")" >> "$GITHUB_OUTPUT"
63+
let valuesFile = ${{ toJson(inputs.values-file) }};
64+
if (valuesFile && valuesFile.length) {
65+
if(isAbsolute(valuesFile)) {
66+
if (!existsSync(valuesFile)) {
67+
return core.setFailed(`The values file '${valuesFile}' does not exist.`);
68+
}
69+
} else {
70+
valuesFile = join(workingDirectory, valuesFile);
71+
if(!existsSync(valuesFile)) {
72+
return core.setFailed(`The values file '${valuesFile}' does not exist in the working directory '${workingDirectory}'.`);
73+
}
74+
}
5575
56-
values_file="${{ inputs.values-file }}"
57-
if [ ! -z "$values_file" ]; then
58-
if [ ! -f "${working_directory}/${values_file}" ]; then
59-
echo "The values file '${values_file}' does not exist in the working directory '${working_directory}'."
60-
exit 1
61-
fi
62-
values_file=$(realpath "${working_directory}/${values_file}")
63-
echo "values-file=${values_file}" >> "$GITHUB_OUTPUT"
64-
fi
76+
valuesFile = realpathSync(valuesFile);
77+
core.setOutput("values-file", valuesFile);
78+
}
6579
6680
- uses: hoverkraft-tech/ci-github-common/actions/checkout@6857ef6d10f704e0998aa4955282f27d1b9be778 # 0.23.1
6781

@@ -73,6 +87,7 @@ runs:
7387
uses: losisin/helm-values-schema-json-action@28b1b33dcd9bd10bb8157627566f3971313a8872 # v2.0.4
7488
with:
7589
input: ${{ steps.prepare-variables.outputs.values-file }}
90+
working-directory: ${{ steps.prepare-variables.outputs.working-directory }}
7691

7792
- name: Prettify code
7893
uses: creyD/prettier_action@8c18391fdc98ed0d884c6345f03975edac71b8f0 # v4.6

0 commit comments

Comments
 (0)