mirror of
https://github.com/deepset-ai/haystack.git
synced 2025-12-30 16:47:19 +00:00
95 lines
2.9 KiB
YAML
95 lines
2.9 KiB
YAML
name: Code & Documentation Updates
|
|
|
|
on:
|
|
# Activate this workflow manually
|
|
workflow_dispatch:
|
|
# Activate this workflow at every push of code changes
|
|
# Note: using push instead of pull_request make the actions
|
|
# run on the contributor's actions instead of Haystack's.
|
|
# This is necessary for permission issues: Haystack's CI runners
|
|
# cannot push changes back to the source fork.
|
|
# TODO make sure this is still necessary later on.
|
|
push:
|
|
branches-ignore:
|
|
- 'master'
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
- '**/*.txt'
|
|
- '**/*.png'
|
|
- '**/*.gif'
|
|
|
|
|
|
jobs:
|
|
|
|
code-and-docs-updates:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
|
|
- name: Cache
|
|
id: cache-python-env
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ${{ env.pythonLocation }}
|
|
# The cache will be rebuild every day and at every change of the dependency files
|
|
key: haystack-ci-${{ env.date }}-${{ hashFiles('**/setup.py') }}-${{ hashFiles('**/setup.cfg') }}-${{ hashFiles('**/pyproject.toml') }}
|
|
|
|
- name: Install Dependencies
|
|
run: |
|
|
pip install --upgrade pip
|
|
pip install .[test]
|
|
pip install rest_api/
|
|
pip install ui/
|
|
pip install torch-scatter -f https://data.pyg.org/whl/torch-1.10.0+cpu.html
|
|
echo "=== pip freeze ==="
|
|
pip freeze
|
|
|
|
# Apply Black on the entire codebase
|
|
- name: Blacken
|
|
run: black .
|
|
|
|
# Convert the Jupyter notebooks into markdown tutorials
|
|
- name: Generate Tutorials
|
|
run: |
|
|
cd docs/_src/tutorials/tutorials/
|
|
python3 convert_ipynb.py
|
|
|
|
# Generate markdown files from the docstrings with pydoc-markdown
|
|
- name: Generate Docstrings
|
|
run: |
|
|
set -e # Fails on any error in the following loop
|
|
cd docs/_src/api/api/
|
|
for file in ../pydoc/* ; do
|
|
echo "Processing" $file
|
|
pydoc-markdown "$file"
|
|
done
|
|
|
|
# Generates the OpenAPI specs file to be used on the documentation website
|
|
- name: Generate OpenAPI Specs
|
|
run: |
|
|
pip install rest_api/
|
|
cd docs/_src/api/openapi/
|
|
python generate_openapi_specs.py
|
|
|
|
# Generates a new JSON schema for the pipeline YAML validation
|
|
- name: Generate JSON schema for pipelines
|
|
run: python ./.github/utils/generate_json_schema.py
|
|
|
|
# Commit the files to GitHub
|
|
- name: Commit files
|
|
run: |
|
|
git status
|
|
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
git config --local user.name "github-actions[bot]"
|
|
git add .
|
|
git commit -m "Update Documentation & Code Style" -a || echo "No changes to commit"
|
|
git push
|