Skip to content

Commit

Permalink
feat: keep public and private API docs in sync with main branch
Browse files Browse the repository at this point in the history
โš ๏ธ This is a WIP commit. I created a playground environment to test the
GitHub actions. The workflow file has been copied from
https://github.com/jvallesm/instill-protobufs and references API IDs
that don't belong to the Instill AI organisation.

We should update the API doc IDs and introduce a `README_API_KEY`
repository variable.

- Changes in main branch update the staging docs
- Version changes in main branch update the public docs
  • Loading branch information
jvallesm committed Feb 13, 2024
1 parent 15d3669 commit beb7878
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions .github/workflows/sync-api-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
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/core/**'
- 'openapiv2/model/**'
- 'openapiv2/vdp/**'

jobs:
sync-openapi-private:
name: Keep private (staging) docs in sync with `main`
runs-on: ubuntu-latest
outputs:
should_update_public: ${{ steps.check-new-release.outputs.is_new_release }}
steps:
- name: Check out repo ๐Ÿ“š
uses: actions/checkout@v3
with:
# Needed in checkNewRelease 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=65ca17433dcd850078ffca3f

- name: Sync Model โš—๏ธ
uses: readmeio/rdme@v8
with:
rdme: openapi openapiv2/model/service.swagger.yaml --key=${{ secrets.README_API_KEY }} --id=65ca17433dcd850078ffca41

- name: Sync VDP ๐Ÿ’ง
uses: readmeio/rdme@v8
with:
rdme: openapi openapiv2/vdp/service.swagger.yaml --key=${{ secrets.README_API_KEY }} --id=65ca17433dcd850078ffca40

- name: Check new release ๐Ÿ”
id: check-new-release
run: |
if [[ `git diff ${{ github.event.before }} ${{ github.event.after }} openapiv2/vdp openapiv2/core openapiv2/model | grep "^+\s\+version"` ]]; then
echo 'is_new_release=true' >> $GITHUB_OUTPUT
else
echo 'is_new_release=false' >> $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.should_update_public == 'true'
steps:
- name: Check out repo ๐Ÿ“š
uses: actions/checkout@v3

- name: Sync Core ๐Ÿ”ฎ
uses: readmeio/rdme@v8
with:
rdme: openapi openapiv2/core/service.swagger.yaml --key=${{ secrets.README_API_KEY }} --id=659fcafc3ca8be005651d43f

- name: Sync Model โš—๏ธ
uses: readmeio/rdme@v8
with:
rdme: openapi openapiv2/model/service.swagger.yaml --key=${{ secrets.README_API_KEY }} --id=65a6a52ab94959005b83f6fc

- name: Sync VDP ๐Ÿ’ง
uses: readmeio/rdme@v8
with:
rdme: openapi openapiv2/vdp/service.swagger.yaml --key=${{ secrets.README_API_KEY }} --id=65a15372e7857a001655767c

0 comments on commit beb7878

Please sign in to comment.