From 9026c5f0d336c05e56bb39d3edbcfde13c6fcedc Mon Sep 17 00:00:00 2001 From: "Jeffrey N. Johnson" Date: Thu, 16 May 2024 14:06:33 -0700 Subject: [PATCH] Created (very) rough draft for autogenerating bindings on schema changes. --- .github/workflows/on_schema_update.yaml | 57 +++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/on_schema_update.yaml diff --git a/.github/workflows/on_schema_update.yaml b/.github/workflows/on_schema_update.yaml new file mode 100644 index 0000000..430a462 --- /dev/null +++ b/.github/workflows/on_schema_update.yaml @@ -0,0 +1,57 @@ +name: Update JSONSchema and Golang schema bindings + +on: + pull_request: + branches: + - develop + +jobs: + changed_files: + runs-on: ubuntu-latest + name: Determine schema changes + steps: + - uses: actions/checkout@v4 + + - name: Get metadata schema changes + id: metadata-schema-changes + uses: tj-actions/changed-files@v44 + with: + files: | + schema/kbase/linkml/credit_metadata.yaml + + - name: Set up python + if: steps.changed-markdown-files.outputs.any_changed == 'true' + uses: actions/setup-python@v4 + with: + python-version: 3.12 + + - name: Regenerate JSONSchema bindings for credit metadata schame + if: steps.changed-markdown-files.outputs.any_changed == 'true' + shell: bash -l {0} + run: | + pip3 install linkml # and any other bits and pieces required - I think that's it, though + gen-json-schema schema/kbase/linkml/credit_metadata.yaml > schema/kbase/jsonschema/credit_metadata.schema.json + + - name: Commit regenerated JSONSchema bindings + if: steps.changed-markdown-files.outputs.any_changed == 'true' + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: Regenerated JSONSchema bindings for credit metadata schema + + - name: checkout DTS repo + uses: actions/checkout@v4 + with: + repository: kbase/dts + path: dts + + - name: Regenerate DTS Golang bindings for credit metadata schame + if: steps.changed-markdown-files.outputs.any_changed == 'true' + shell: bash -l {0} + run: | + gen-golang schema/kbase/linkml/credit_metadata.yaml > dts/credit/metadata.go + + - name: Create DTS pull request with regenerated credit metadata bindings + if: steps.changed-markdown-files.outputs.any_changed == 'true' + uses: peter-evans/create-pull-request@v6 + with: + token: ${{ secrets.PAT }} # https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens