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' jobs: code-and-docs-updates: runs-on: ubuntu-latest timeout-minutes: 45 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 .[all] 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: python .github/utils/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