Skip to content

updates to the automatic generation GA workflows #131

updates to the automatic generation GA workflows

updates to the automatic generation GA workflows #131

name: test generating other formats
on:
push:
branches:
- main
pull_request:
permissions:
contents: write
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout this repository
uses: actions/checkout@v3
- 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 colordiff
- name: Generate other model representations
run: |
cd linkml-schema
mkdir tests_artifacts
mkdir tests_artifacts/json-schema-autogen
mkdir tests_artifacts/jsonld-context-autogen
mkdir tests_artifacts/models_py-autogen
mkdir tests_artifacts/erdiagram-autogen
for file in *.yaml; do
if [[ "$file" != *bican* && "$file" != *core* ]]; then
name=`basename ${file} .yaml`;
echo "Processing $name file..";
gen-json-schema ${file} > tests_artifacts/json-schema-autogen/${name}.json;
echo "Diff in json schema for $name file (comparing to the current version)"
colordiff ../json-schema-autogen/${name}.json tests_artifacts/json-schema-autogen/${name}.json || true
# generating jsonld context and removing generation_date field to avoid constant updates
gen-jsonld-context ${file} > tests_artifacts/jsonld-context-autogen/${name}.context.jsonld;
sed -i "/generation_date/d" tests_artifacts/jsonld-context-autogen/${name}.context.jsonld;
echo "Diff in jsonld context for $name file (comparing to the current version)"
colordiff ../jsonld-context-autogen/${name}.context.jsonld tests_artifacts/jsonld-context-autogen/${name}.context.jsonld || true
gen-pydantic ${file} > tests_artifacts/models_py-autogen/${name}.py;
echo "Diff in pydantic model for $name file (comparing to the current version)"
colordiff ../models_py-autogen/${name}.py tests_artifacts/models_py-autogen/${name}.py || true
if [ ${name} = "library_generation" ] || [ ${name} = "genome_annotation" ]; then
echo "Creating and Fixing diagrams for $name";
python ../utils/fix_and_create_erdiagram.py
else
gen-erdiagram ${file} > tests_artifacts/erdiagram-autogen/${name}.md;
fi
fi
done
ls -l tests_artifacts/json-schema-autogen
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: artifacts
path: linkml-schema/tests_artifacts/*