Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: cloud-agent OAS breaking change detection #1000

Merged
merged 14 commits into from
May 1, 2024
78 changes: 78 additions & 0 deletions .github/workflows/oasdiff.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
---
name: "OAS Breaking Changes"


defaults:
run:
shell: bash

on:
pull_request:
branches:
- main

workflow_dispatch:
inputs:
revision_tag:
required: true
type: string
description: "Revision tag to check the breaking changes in the OAS"
base_tag:
required: false
type: string
description: "Base tag to check the breaking changes in the OAS"
default: "main"

# https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/prism-agent-v1.29.0/prism-agent/service/api/http/prism-agent-openapi-spec.yaml
# https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/main/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml

jobs:
oasdiff-breaking:
name: "Open API specification breaking changes detection"
runs-on: ubuntu-latest
steps:
- name: Resolve the base OpenAPI spec URL
run: |
BASE_TAG="${{ github.event.inputs.base_tag }}"
echo "Base tag: $BASE_TAG"
if [[ $BASE_TAG == 'cloud-agent-v*' ]]; then
echo "BASE_URL=https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/$BASE_TAG/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml" >> $GITHUB_ENV
elif [[ $BASE_TAG == 'prism-agent-v*' ]]; then
echo "BASE_URL=https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/$BASE_TAG/prism-agent/service/api/http/prism-agent-openapi-spec.yaml" >> $GITHUB_ENV
elif [[ $BASE_TAG == 'main' ]]; then
echo "BASE_URL=https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/$BASE_TAG/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml" >> $GITHUB_ENV
elif [[ ${{ github.event_name }} == 'pull_request' ]]; then
echo "BASE_URL=https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/main/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml" >> $GITHUB_ENV
fi

- name: Resolve the revision OpenAPI spec URL
run: |
REV_TAG="${{ github.event.inputs.revision_tag }}"
echo "Revision tag: $REV_TAG"
if [[ $REV_TAG == 'cloud-agent-v*' ]]; then
echo "REV_URL=https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/$REV_TAG/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml" >> $GITHUB_ENV
elif [[ $REV_TAG == 'prism-agent-v*' ]]; then
echo "REV_URL=https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/$REV_TAG/prism-agent/service/api/http/prism-agent-openapi-spec.yaml" >> $GITHUB_ENV
elif [[ $REV_TAG == 'main' ]]; then
echo "REV_URL=https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/$REV_TAG/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml" >> $GITHUB_ENV
elif [[ ${{ github.event_name }} == 'pull_request' ]]; then
BRANCH_NAME=${{ github.head_ref || github.ref_name }}
echo "REV_URL=https://raw.githubusercontent.com/hyperledger/identus-cloud-agent/$BRANCH_NAME/cloud-agent/service/api/http/cloud-agent-openapi-spec.yaml" >> $GITHUB_ENV
fi

- name: Check URLS
run: |
echo "Base url: ${{ env.BASE_URL }}"
echo "Revision url: ${{ env.REV_URL }}"

- name: Running OpenAPI Spec diff action
uses: oasdiff/oasdiff-action/breaking@main
with:
fail-on-diff: false
base: ${{ env.BASE_URL }}
revision: ${{ env.REV_URL }}





Loading