Skip to content

Sync SDK with New API Spec #28

Sync SDK with New API Spec

Sync SDK with New API Spec #28

on:
workflow_dispatch:
inputs:
new_api_spec_version_number:
required: true
name: Sync SDK with New API Spec
jobs:
sync:
strategy:
matrix:
java-version: [11.0.21]
java-distribution: [temurin]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Get current date
id: date
run: echo "date=$(date +'%Y-%m-%d')" >> "$GITHUB_OUTPUT"
- name: Checkout Java Code
uses: actions/checkout@v2
- name: Install Java
uses: actions/setup-java@v2
with:
java-version: ${{ matrix.java-version }}
distribution: ${{ matrix.java-distribution }}
cache: maven
- name: Get next API Spec Version
id: spec_versions
run: |
API_SPEC_LINE=$(grep -i app.swaggerhub.com Makefile)
CURRENT_VERSION_NUM=$(echo $API_SPEC_LINE | cut -d / -f7)
echo "api_spec_line=$API_SPEC_LINE" >> "$GITHUB_OUTPUT"
echo "cur_version=$CURRENT_VERSION_NUM" >> "$GITHUB_OUTPUT"
- name: GitHub user
run: |
# https://api.github.com/users/github-actions[bot]
git config user.name 'github-actions[bot]'
git config user.email '41898282+github-actions[bot]@users.noreply.github.com'
- name: Sync
run: |
VERSION_UPDATE="OPENAPI_URL=\"https://app.swaggerhub.com/apiproxy/registry/equinix-api/fabric/${{ github.event.inputs.new_api_spec_version_number }}\""
sed -i 's,${{ steps.spec_versions.outputs.api_spec_line }},'"$VERSION_UPDATE"',' Makefile
make generate
- name: Tests
env:
TEST_HOST_URL: https://uatapi.equinix.com
CLIENT_ID: ${{ secrets.TEST_USER_CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.TEST_USER_CLIENT_SECRET }}
TEST_USER_NAME: ${{ secrets.TEST_USER_NAME }}
TEST_USER_PASSWORD: ${{ secrets.TEST_USER_PASSWORD }}
shell: bash
working-directory: ./equinix-openapi-fabric
run: |-
mvn clean package -DskipTests -DenvUrl=${{ env.TEST_HOST_URL }} -DuserName=${{ env.TEST_USER_NAME }}
- name: Commit changes
run: |
git commit -m 'sync: fetch ${{ steps.date.outputs.date }} spec and apply patches' spec/*.json
git add equinix-openapi-fabric
git commit -m 'sync: generate client with ${{ steps.date.outputs.date }} spec'
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v3
with:
branch: sync/gh
branch-suffix: timestamp
title: Version ${{ steps.spec_versions.outputs.cur_version }} to ${{ github.event.inputs.new_api_spec_version_number }} API Spec Sync by GitHub Action (${{ steps.date.outputs.date }})
body: |
This API Sync PR was automated through GitHub Actions workflow_displatch
on ${{ steps.date.outputs.date }}.
This PR updates the SDK API Spec Version:
from ${{ steps.spec_versions.outputs.cur_version }} to ${{ github.event.inputs.new_api_spec_version_number }}
* Latest Swaggerhub API Spec is fetched - version ${{ github.event.inputs.new_api_spec_version_number }}
* Patches have been applied
* Generated client has been updated
## Changes in SDK
### Enhancements
-Add enhancements here-
### Breaking Changes
-Add breaking changes here-
delete-branch: true
- name: Check outputs
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"