Merge pull request #534 from ReproNim/dependabot/github_actions/actio… #77
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
# - validate the protocol and activities in the repo with reproschema.py | |
# - triggers a release when a github release is published | |
name: validate and release | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: ['*'] | |
# Allow to trigger the generation of release files automatically | |
workflow_dispatch: | |
inputs: | |
version: | |
description: 'version number' | |
required: true | |
type: string | |
jobs: | |
validate: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Install dependencies | |
# TODO This installs reproschema from source and not from pypi | |
# This may not be the optimal way of doing it. | |
run: | | |
python -m pip install --upgrade pip setuptools | |
pip install git+https://github.com/ReproNim/reproschema-py.git | |
- name: Validate content | |
run: | | |
python scripts/jsonParser.py | |
reproschema validate examples | |
release: | |
needs: [validate] | |
if: github.event_name == 'workflow_dispatch' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools | |
pip install linkml astor pre-commit | |
pip install git+https://github.com/ReproNim/reproschema-py.git | |
- name: Generate pydantic using linml and fixing it with reproschema specific script | |
run: | | |
gen-pydantic --pydantic-version 2 linkml-schema/reproschema.yaml > reproschema_model.py | |
python scripts/fix_pydantic.py reproschema_model.py | |
pre-commit run --files reproschema_model.py || true | |
- name: Generate jsonld format using linkml | |
run: | | |
gen-jsonld --context https://raw.githubusercontent.com/ReproNim/reproschema/main/contexts/reproschema linkml-schema/reproschema.yaml > reproschema.jsonld | |
- name: Generate n-triples and turtle formats using reproschema | |
run: | | |
reproschema convert --format n-triples reproschema.jsonld > reproschema.nt | |
reproschema convert --format turtle reproschema.jsonld > reproschema.ttl | |
- name: Make a release | |
run: | | |
echo "Making a release ${{ inputs.version }}" | |
mkdir releases/${{ inputs.version }} | |
cp contexts/reproschema releases/${{ inputs.version }}/reproschema | |
mv reproschema_model.py releases/${{ inputs.version }}/reproschema_model.py | |
mv reproschema.jsonld releases/${{ inputs.version }}/reproschema.jsonld | |
mv reproschema.nt releases/${{ inputs.version }}/reproschema.nt | |
mv reproschema.ttl releases/${{ inputs.version }}/reproschema.ttl | |
- name: Open pull requests to add files | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
commit-message: "[REL] adding files to for release ${{ inputs.version }}" | |
base: main | |
token: ${{ secrets.GITHUB_TOKEN }} | |
delete-branch: true | |
title: "[REL] adding files to for release ${{ inputs.version }}" | |
body: done via this [GitHub Action](https://github.com/${{ github.repository_owner }}/reproschema/blob/main/.github/workflows/validate_and_release.yml) |