diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8d8f84f8f..575f6ba55 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -1,56 +1,56 @@ -# TODO: Enable this workflow when the API coverage tool is ready to handle yaml files -#name: API Coverage -# -#on: [push, pull_request_target] -# -#env: -# JAVA_VERSION: 11 -# OPENSEARCH_INITIAL_ADMIN_PASSWORD: BobgG7YrtsdKf9M -# -#jobs: -# coverage: -# permissions: -# pull-requests: write -# runs-on: ubuntu-latest -# steps: -# - name: Checkout Repo -# uses: actions/checkout@v4 -# with: -# ref: ${{ github.event.pull_request.head.sha }} -# - name: Build and Run Docker Container -# run: | -# docker build coverage --tag opensearch-with-api-plugin -# docker run -d -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" -e OPENSEARCH_INITIAL_ADMIN_PASSWORD="$OPENSEARCH_INITIAL_ADMIN_PASSWORD" opensearch-with-api-plugin -# sleep 15 -# - name: Display OpenSearch Info -# run: | -# curl -ks -u "admin:$OPENSEARCH_INITIAL_ADMIN_PASSWORD" https://localhost:9200/ | jq -# - name: Dump and Compare API -# run: | -# curl -ks -u "admin:$OPENSEARCH_INITIAL_ADMIN_PASSWORD" https://localhost:9200/_plugins/api | jq > OpenSearch.auto.openapi.json -# docker run --rm --mount type=bind,source=.,target=/specs openapitools/openapi-diff:latest /specs/OpenSearch.openapi.json /specs/OpenSearch.auto.openapi.json --json /specs/diff.json -# - name: Show Diff -# run: | -# echo "-------- Missing APIs" -# jq -r '.newEndpoints | group_by(.pathUrl)[] | "\(.[0].pathUrl): \([.[].method])"' diff.json -# echo "-------- Legacy APIs" -# jq -r '.missingEndpoints | group_by(.pathUrl)[] | "\(.[0].pathUrl): \([.[].method])"' diff.json -# - name: Gather Coverage -# id: coverage -# shell: bash -# run: | -# current=`jq -r '.paths | keys | length' OpenSearch.openapi.json` -# total=`jq -r '.paths | keys | length' OpenSearch.auto.openapi.json` -# percent=$((current * 100 / total)) -# echo "API specs implemented for $current/$total ($percent%) APIs." -# cat >>"$GITHUB_OUTPUT" < OpenSearch.auto.openapi.json + docker run --rm --mount type=bind,source=.,target=/specs openapitools/openapi-diff:latest /specs/OpenSearch.openapi.json /specs/OpenSearch.auto.openapi.json --json /specs/diff.json + - name: Show Diff + run: | + echo "-------- Missing APIs" + jq -r '.newEndpoints | group_by(.pathUrl)[] | "\(.[0].pathUrl): \([.[].method])"' diff.json + echo "-------- Legacy APIs" + jq -r '.missingEndpoints | group_by(.pathUrl)[] | "\(.[0].pathUrl): \([.[].method])"' diff.json + - name: Gather Coverage + id: coverage + shell: bash + run: | + current=`jq -r '.paths | keys | length' OpenSearch.openapi.json` + total=`jq -r '.paths | keys | length' OpenSearch.auto.openapi.json` + percent=$((current * 100 / total)) + echo "API specs implemented for $current/$total ($percent%) APIs." + cat >>"$GITHUB_OUTPUT" <