chore: downgrade IH Management API version (#355) #96
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: Publish OpenAPI Specs | |
on: | |
workflow_call: | |
inputs: | |
version: | |
required: true | |
description: "The version under which the API should be published" | |
type: string | |
workflow_dispatch: | |
inputs: | |
version: | |
required: true | |
description: "The version under which the API should be published" | |
type: string | |
push: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
Publish-To-SwaggerHub: | |
# do NOT run on forks. The Org ("edc") is unique all across SwaggerHub | |
# Disable temporarily, because we can only have 3 APIs in the SwaggerHub free tier | |
if: github.repository == 'eclipse-edc/IdentityHub' && false | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
apiGroup: [ 'ih-resolution-api', 'ih-management-api' ] | |
env: | |
rootDir: resources/openapi/yaml/${{ matrix.apiGroup }} | |
SWAGGERHUB_API_KEY: ${{ secrets.SWAGGERHUB_TOKEN }} | |
SWAGGERHUB_USER: ${{ secrets.SWAGGERHUB_USER }} | |
VERSION: ${{ github.event.inputs.version || inputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-build | |
- uses: actions/setup-node@v4 | |
# merge together all api groups | |
- name: Generate API Specs | |
run: | | |
# give option to override | |
cmd="" | |
if [ ! -z $VERSION ]; then | |
cmd="-Pversion=$VERSION" | |
fi | |
./gradlew resolve | |
./gradlew ${cmd} -PapiTitle="${{ matrix.apiGroup }}" -PapiDescription="REST API documentation for the ${{ matrix.apiGroup }}" :mergeApiSpec --input=${{ env.rootDir }} --output=${{ matrix.apiGroup }}.yaml | |
# install swaggerhub CLI | |
- name: Install SwaggerHub CLI | |
run: npm i -g swaggerhub-cli | |
# create API, will fail if exists | |
- name: Create API | |
continue-on-error: true | |
run: | | |
swaggerhub api:create ${{ env.SWAGGERHUB_USER }}/${{ matrix.apiGroup }} -f ${{ matrix.apiGroup }}.yaml --visibility=public --published=unpublish | |
# Post snapshots of the API to SwaggerHub as "unpublished", because published APIs cannot be overwritten | |
- name: Publish API Specs to SwaggerHub | |
run: | | |
# coalesce $VERSION, or whatever's stored in gradle.properties | |
vers=${VERSION:-$(grep "version" gradle.properties | awk -F= '{print $2}')} | |
if [[ $vers != *-SNAPSHOT ]]; then | |
echo "no snapshot, will set the API to 'published'"; | |
swaggerhub api:update ${{ env.SWAGGERHUB_USER }}/${{ matrix.apiGroup }} -f ${{ matrix.apiGroup }}.yaml --visibility=public --published=publish | |
swaggerhub api:setdefault ${{ env.SWAGGERHUB_USER }}/${{ matrix.apiGroup }}/$vers | |
else | |
echo "snapshot, will set the API to 'unpublished'"; | |
swaggerhub api:update ${{ env.SWAGGERHUB_USER }}/${{ matrix.apiGroup }} -f ${{ matrix.apiGroup }}.yaml --visibility=public --published=unpublish | |
fi |