From f78db8f3c92b5131d12444e77d64f46ee578434a Mon Sep 17 00:00:00 2001 From: Melvin Lee Date: Thu, 21 Nov 2024 11:09:45 +0100 Subject: [PATCH] chore(lint-oas): lint-oas workflow toegevoegd --- .github/workflows/lint-oas.yml | 60 ++++++++++++++++++++++++++++++++++ scripts/oas-lint-resolved.sh | 3 ++ scripts/oas-lint.sh | 2 +- scripts/oas-resolve.sh | 4 +++ 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/lint-oas.yml create mode 100644 scripts/oas-lint-resolved.sh create mode 100644 scripts/oas-resolve.sh diff --git a/.github/workflows/lint-oas.yml b/.github/workflows/lint-oas.yml new file mode 100644 index 0000000..9a1a193 --- /dev/null +++ b/.github/workflows/lint-oas.yml @@ -0,0 +1,60 @@ +name: lint OpenAPI specificaties + +on: + push: + paths: + - specificatie/*.yaml + - .github/workflows/lint-oas.yml + branches: + - '**' + workflow_dispatch: + +env: + NODE_VERSION: '20' + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Install dependencies + run: npm ci + + - name: Zet run permissions op script folder + uses: ./.github/actions/zet-run-bash-scripts-permission + with: + path-bash-file-or-folder: ./scripts/* + + - name: lint OAS + run: ./scripts/oas-lint.sh + - name: resolve OAS + run: ./scripts/oas-resolve.sh + - name: lint resolved OAS + run: ./scripts/oas-lint-resolved.sh + + - name: push resolved to remote + run: | + doCommit=false + + if [ -n "$(git status specificatie/resolved/openapi.yaml --porcelain)" ]; then + echo "specificatie/resolved/openapi.yaml modified" + git add specificatie/resolved/openapi.* + doCommit=true + fi + + if [ $doCommit = true ]; then + echo "commit resolve artifacts" + git config user.name "$GITHUB_ACTOR" + git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + git pull --ff-only + git commit -m "commit resolve artifacts" + git push + else + echo "no commit" + fi diff --git a/scripts/oas-lint-resolved.sh b/scripts/oas-lint-resolved.sh new file mode 100644 index 0000000..6cf86f9 --- /dev/null +++ b/scripts/oas-lint-resolved.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +npx spectral lint ./specificatie/resolved/openapi.yaml diff --git a/scripts/oas-lint.sh b/scripts/oas-lint.sh index 5caed4a..bea1504 100644 --- a/scripts/oas-lint.sh +++ b/scripts/oas-lint.sh @@ -1,3 +1,3 @@ #!/bin/bash -spectral lint ./specificatie/**/*.yaml +npx spectral lint ./specificatie/openapi.yaml diff --git a/scripts/oas-resolve.sh b/scripts/oas-resolve.sh new file mode 100644 index 0000000..03d2a9d --- /dev/null +++ b/scripts/oas-resolve.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +npx redocly bundle ./specificatie/openapi.yaml -o ./specificatie/resolved/openapi.yaml +npx redocly bundle ./specificatie/openapi.yaml -o ./specificatie/resolved/openapi.json