Skip to content

Commit

Permalink
new workflows to generate other formats for the models; using reusabl…
Browse files Browse the repository at this point in the history
…e workflow
  • Loading branch information
djarecka committed Dec 9, 2024
1 parent 257514b commit 36baa8e
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 74 deletions.
17 changes: 17 additions & 0 deletions .github/workflows/ansr_generate_other_formats.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: generating other formats for anatomical_structure

on:
pull_request_target:
types: [opened, synchronize]
paths:
- 'linkml-schema/anatomical_structure.yaml'


permissions:
contents: write

jobs:
generate_from_reusable:
uses: brain-bican/models/.github/workflows/reusable-generate_other_formats.yaml@main
with:
model_name: anatomical_structure
17 changes: 17 additions & 0 deletions .github/workflows/assertion_generate_other_formats.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: generating other formats for assertion_evidence

on:
pull_request_target:
types: [opened, synchronize]
paths:
- 'linkml-schema/assertion_evidence.yaml'


permissions:
contents: write

jobs:
generate_from_reusable:
uses: brain-bican/models/.github/workflows/reusable-generate_other_formats.yaml@main
with:
model_name: assertion_evidence
74 changes: 0 additions & 74 deletions .github/workflows/generate_other_formats.yaml

This file was deleted.

17 changes: 17 additions & 0 deletions .github/workflows/genome_generate_other_formats.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: generating other formats for genome_annotation

on:
pull_request_target:
types: [opened, synchronize]
paths:
- 'linkml-schema/genome_annotation.yaml'


permissions:
contents: write

jobs:
generate_from_reusable:
uses: brain-bican/models/.github/workflows/reusable-generate_other_formats.yaml@main
with:
model_name: genome_annotation
17 changes: 17 additions & 0 deletions .github/workflows/library_generate_other_formats.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: generating other formats for library_generation

on:
pull_request_target:
types: [opened, synchronize]
paths:
- 'linkml-schema/library_generation.yaml'


permissions:
contents: write

jobs:
generate_from_reusable:
uses: brain-bican/models/.github/workflows/reusable-generate_other_formats.yaml@main
with:
model_name: library_generation
73 changes: 73 additions & 0 deletions .github/workflows/reusable-generate_other_formats.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Reusable workflow for generating other formats

on:
workflow_call:
inputs:
model_name:
description: 'A name of the model, without the .yaml extension'
required: true
type: string

permissions:
contents: write

jobs:
generate:
runs-on: ubuntu-latest
steps:
- name: Checkout this repository
uses: actions/checkout@v3
with:
fetch-depth: 0
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9

- name: Install the required python packages
run: python -m pip install .[test]

- name: Other installations
run: |
sudo apt-get update
sudo apt-get install -y build-essential git wget curl
- name: Generate other model representations
run: |
cd linkml-schema
name=${{ inputs.model_name }};
echo "Processing $name model...";
gen-json-schema ${name}.yaml > ../json-schema-autogen/${name}.json;
# generating jsonld context and removing generation_date field to avoid constant updates
gen-jsonld-context ${name}.yaml > ../jsonld-context-autogen/${name}.context.jsonld;
sed -i "/generation_date/d" ../jsonld-context-autogen/${name}.context.jsonld;
gen-pydantic ${name}.yaml > ../models_py-autogen/${name}.py;
if [ ${name} = "library_generation" ] || [ ${name} = "genome_annotation" ]; then
echo "Fixing erdiagrams for $name";
python ../utils/fix_and_create_erdiagram.py;
else
gen-erdiagram ${name}.yaml > ../erdiagram-autogen/${name}.md;
fi
cd ..
- name: Adding other model representations to git
run: |
name=${{ inputs.model_name }};
git config --global user.name "[email protected]"
git config --global user.email "Github Actions"
git branch
git diff
git add json-schema-autogen/${name}.json
git add jsonld-context-autogen/${name}.context.jsonld
git add models_py-autogen/${name}.py
git add erdiagram-autogen/${name}.md
if ! git diff --quiet HEAD; then
git commit -m "generate another formats for ${name} model"
git pull --rebase # to avoid conflicts with different wf runs
git push
else
echo "No changes to commit"
fi

0 comments on commit 36baa8e

Please sign in to comment.