feat(model): support model version deletion (#374) #84
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: Sync docs in ReadMe ๐ฆ | |
on: | |
push: | |
branches: | |
# This workflow will run every time changes in the OpenAPI docs are | |
# pushed to the `main` branch. | |
- main | |
paths: | |
- 'openapiv2/artifact/**' | |
- 'openapiv2/common/**' | |
- 'openapiv2/core/**' | |
- 'openapiv2/model/**' | |
- 'openapiv2/vdp/**' | |
jobs: | |
sync-openapi-private: | |
name: Keep private (staging) docs in sync with `main` | |
runs-on: ubuntu-latest | |
outputs: | |
old_release: ${{ steps.check-new-release.outputs.old_release }} | |
new_release: ${{ steps.check-new-release.outputs.new_release }} | |
steps: | |
- name: Check out repo ๐ | |
uses: actions/checkout@v3 | |
with: | |
# Needed in check-new-release to compare with the previous commit. | |
fetch-depth: 0 | |
- name: Sync Core ๐ฎ | |
uses: readmeio/rdme@v8 | |
with: | |
rdme: openapi openapiv2/core/service.swagger.yaml --key=${{ secrets.README_API_KEY }} --id=65bcfc78e72e300017c0b162 | |
- name: Sync Model โ๏ธ | |
uses: readmeio/rdme@v8 | |
with: | |
rdme: openapi openapiv2/model/service.swagger.yaml --key=${{ secrets.README_API_KEY }} --id=65bcfc78e72e300017c0b163 | |
- name: Sync VDP ๐ง | |
uses: readmeio/rdme@v8 | |
with: | |
rdme: openapi openapiv2/vdp/service.swagger.yaml --key=${{ secrets.README_API_KEY }} --id=65bcfc78e72e300017c0b164 | |
- name: Check new release ๐ | |
id: check-new-release | |
run: | | |
# If the version in the OpenAPI configuration has changed, extract | |
# the old and new release versions (without the "v" prefix) to | |
# variables. | |
version_file=common/openapi/v1beta/api_info.conf | |
capture_old='^-\s\+\<version:' | |
capture_new='^+\s\+\<version:' | |
extract_version='s/.*"v\(.*\)".*/\1/' | |
old_version=$(git diff ${{ github.event.before }} ${{ github.event.after }} $version_file | grep $capture_old | sed $extract_version) | |
new_version=$(git diff ${{ github.event.before }} ${{ github.event.after }} $version_file | grep $capture_new | sed $extract_version) | |
if [[ $new_version ]]; then | |
echo "new_release=$new_version" >> $GITHUB_OUTPUT | |
echo "old_release=$old_version" >> $GITHUB_OUTPUT | |
fi | |
sync-openapi-public: | |
name: Sync public docs on new release | |
needs: [sync-openapi-private] | |
runs-on: ubuntu-latest | |
if: needs.sync-openapi-private.outputs.new_release != '' | |
steps: | |
- name: Check out repo ๐ | |
uses: actions/checkout@v3 | |
- name: Create new version ๐ | |
uses: readmeio/rdme@v8 | |
env: | |
Release: ${{ needs.sync-openapi-private.outputs.new_release }} | |
with: | |
rdme: versions:create ${{ env.Release }} --fork 0-beta-staging --codename=${{ env.Release}} --main true --beta true --isPublic true --key=${{ secrets.README_API_KEY }} | |
- name: Delete old version ๐งน | |
uses: readmeio/rdme@v8 | |
env: | |
OldRelease: ${{ needs.sync-openapi-private.outputs.old_release }} | |
with: | |
rdme: versions:delete ${{ env.OldRelease }} --key=${{ secrets.README_API_KEY }} |