Adds API spec coverage report. #21
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: API Coverage | |
on: [push, pull_request] | |
env: | |
JAVA_VERSION: 11 | |
OPENSEARCH_VERSION: 2.12.0 | |
jobs: | |
coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v2 | |
- name: Install API Plugin | |
run: | | |
wget https://github.com/dblock/opensearch-api/releases/download/v${{ env.OPENSEARCH_VERSION }}/opensearch-api-${{ env.OPENSEARCH_VERSION }}.0.zip | |
echo "FROM opensearchproject/opensearch:${{ env.OPENSEARCH_VERSION }}" >> Dockerfile | |
echo "ADD ./opensearch-api-${{ env.OPENSEARCH_VERSION }}.0.zip /tmp/" >> Dockerfile | |
echo "ENV OPENSEARCH_INITIAL_ADMIN_PASSWORD=BobgG7YrtsdKf9M" >> Dockerfile | |
echo "RUN /usr/share/opensearch/bin/opensearch-plugin install --batch file:/tmp/opensearch-api-${{ env.OPENSEARCH_VERSION }}.0.zip" >> Dockerfile | |
cat Dockerfile | |
- name: Build and Run Docker Container | |
run: | | |
docker build . --tag opensearch-with-api-plugin | |
docker run --detach -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" opensearch-with-api-plugin --name opensearch-with-api-plugin-instance | |
docker logs -f --until=30s opensearch-with-api-plugin-instance | |
- name: Display OpenSearch Info | |
run: | | |
curl -u admin:admin --insecure https://localhost:9200/ | jq | |
- name: Dump and Compare API | |
run: | | |
curl -u admin:admin --insecure https://localhost:9200/_plugins/api | jq > OpenSearch.auto.openapi.json | |
docker run --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" | |
cat diff.json | jq '.newEndpoints | group_by(.pathUrl)[] | .[0].pathUrl + ": " + (map(.method) | tostring)' --raw-output | |
echo "-------- Legacy APIs" | |
cat diff.json | jq '.missingEndpoints | group_by(.pathUrl)[] | .[0].pathUrl + ": " + (map(.method) | tostring)' --raw-output | |