mirror of
https://github.com/moby/moby.git
synced 2026-01-11 18:51:37 +00:00
Signed-off-by: Rafael Camelo <rafaelcamelo31@gmail.com> revert api/swagger.yaml to undo formatting Signed-off-by: Rafael Camelo <rafaelcamelo31@gmail.com> refactor(api): update Dockerfile and Makefile with newline at the EOF and use current best practices Signed-off-by: Rafael Camelo <rafaelcamelo31@gmail.com> refactor validations and swagger generation flow Signed-off-by: Rafael Camelo <rafaelcamelo31@gmail.com> shfmt Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com> Signed-off-by: Rafael Camelo <rafaelcamelo31@gmail.com> refactor generate-swagger-api.sh to use absolute path Signed-off-by: Rafael Camelo <rafaelcamelo31@gmail.com> add validate-api-swagger job for GitHub Actions Signed-off-by: Rafael Camelo <rafaelcamelo31@gmail.com> fix validate-api-swagger ci workflow Signed-off-by: Rafael Camelo <rafaelcamelo31@gmail.com> update go version and redoc in api module Signed-off-by: Rafael Camelo <rafaelcamelo31@gmail.com> Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
53 lines
1.4 KiB
Bash
Executable File
53 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
API_DIR="${SCRIPT_DIR}/.."
|
|
|
|
TMP_DIR="$(mktemp -d)"
|
|
trap "rm -rf ${TMP_DIR}" EXIT
|
|
GEN_FILES=()
|
|
|
|
echo "Validating generated code..."
|
|
echo "Separating generated files from handwritten files..."
|
|
while IFS= read -r file; do
|
|
GEN_FILES+=("$file")
|
|
done < <(grep -rl "// Code generated" "${API_DIR}/types" || true)
|
|
|
|
echo "Copying generated files into temporary folder..."
|
|
for f in "${GEN_FILES[@]}"; do
|
|
mkdir -p "${TMP_DIR}/$(dirname "${f#${API_DIR}/}")"
|
|
cp "$f" "${TMP_DIR}/${f#${API_DIR}/}"
|
|
done
|
|
|
|
cp "${API_DIR}/swagger.yaml" "${TMP_DIR}/"
|
|
cp "${API_DIR}/swagger-gen.yaml" "${TMP_DIR}/"
|
|
cp -r "${API_DIR}/templates" "${TMP_DIR}/" 2> /dev/null || true
|
|
|
|
echo "Generating swagger types in temporary folder..."
|
|
(
|
|
cd "${TMP_DIR}"
|
|
"${SCRIPT_DIR}/generate-swagger-api.sh" > /dev/null 2>&1
|
|
)
|
|
|
|
echo "Run diff for all generated files..."
|
|
DIFF_FOUND=false
|
|
for f in "${GEN_FILES[@]}"; do
|
|
REL="${f#${API_DIR}/}"
|
|
if ! diff -q "${TMP_DIR}/${REL}" "${API_DIR}/${REL}" > /dev/null 2>&1; then
|
|
echo "Difference found in ${REL}"
|
|
diff -u "${TMP_DIR}/${REL}" "${API_DIR}/${REL}" || true
|
|
DIFF_FOUND=true
|
|
fi
|
|
done
|
|
|
|
if [ "$DIFF_FOUND" = true ]; then
|
|
echo
|
|
echo "Swagger validation failed. Please run:"
|
|
echo " ./scripts/generate-swagger-api.sh"
|
|
echo "and commit updated generated files."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Swagger file is up to date."
|