feat/textual enrichment #46
Workflow file for this run
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
# This is a basic workflow to help you get started with GitHub Actions | |
name: TESTS Talk2KnowledgeGraphs | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on push or pull request events | |
pull_request: | |
branches: [ main ] | |
paths: | |
- 'aiagents4pharma/talk2knowledgegraphs/**' | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
env: | |
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
# This workflow contains jobs covering linting and code coverage (along with testing). | |
jobs: | |
# pylint job for macos | |
pylint-macos: | |
# The type of runner that the job will run on | |
name: pylint | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-13] | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.12 | |
- name: Cache files | |
uses: actions/cache@v4 | |
id: cache | |
with: | |
path: | | |
${{ github.workspace }}/venv/* | |
key: ${{ runner.os }}-venv | |
# install requirements | |
- name: Install the requirements | |
if: steps.cache.outputs.cache-hit != 'true' | |
working-directory: ${{ github.workspace }} | |
run: | | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install --upgrade pip | |
pip3 install --break-system-packages -r requirements.txt | |
# pylint | |
- name: Run pylint | |
working-directory: ${{ github.workspace }} | |
run: | | |
source venv/bin/activate | |
pylint --disable=R0801,R0902,W0221,W0122 aiagents4pharma/talk2knowledgegraphs | |
# pylint job for ubuntu | |
pylint-ubuntu: | |
# The type of runner that the job will run on | |
name: pylint | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.12 | |
- name: Cache files | |
uses: actions/cache@v4 | |
id: cache | |
with: | |
path: | | |
${{ github.workspace }}/venv/* | |
key: ${{ runner.os }}-venv | |
# install requirements | |
- name: Install the requirements | |
if: steps.cache.outputs.cache-hit != 'true' | |
working-directory: ${{ github.workspace }} | |
run: | | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install --upgrade pip | |
pip3 install --break-system-packages -r requirements.txt | |
# pylint | |
- name: Run pylint | |
working-directory: ${{ github.workspace }} | |
run: | | |
source venv/bin/activate | |
pylint --disable=R0801,R0902,W0221,W0122 aiagents4pharma/talk2knowledgegraphs | |
# pylint job for windows | |
pylint-windows: | |
# The type of runner that the job will run on | |
name: pylint | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest] | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.12 | |
- name: Cache files | |
uses: actions/cache@v4 | |
id: cache | |
with: | |
path: | | |
${{ github.workspace }}\venv\* | |
key: ${{ runner.os }}-venv | |
# install requirements | |
- name: Install the requirements | |
if: steps.cache.outputs.cache-hit != 'true' | |
working-directory: ${{ github.workspace }} | |
run: | | |
python3 -m venv venv | |
venv\Scripts\activate | |
pip install --upgrade pip | |
pip3 install --break-system-packages -r requirements.txt | |
# pylint | |
- name: Run pylint | |
working-directory: ${{ github.workspace }} | |
run: | | |
venv\Scripts\activate | |
pylint --disable=R0801,R0902,W0221,W0122 aiagents4pharma/talk2knowledgegraphs | |
# code coverage job for macos | |
code-cov-macos: | |
name: code-coverage | |
needs: pylint-macos | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-13] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.12 | |
- name: Cache venv | |
uses: actions/cache@v4 | |
id: cache_venv | |
with: | |
path: | | |
${{ github.workspace }}/venv/* | |
key: ${{ runner.os }}-venv | |
- name: Cache Ollama models | |
uses: actions/cache@v4 | |
id: cache_ollama | |
with: | |
path: | | |
/Users/runner/.ollama/models/* | |
key: ${{ runner.os }}-ollama | |
- name: Install and Pull Ollama models | |
if: steps.cache_ollama.outputs.cache-hit != 'true' | |
working-directory: ${{ github.workspace }} | |
run: | | |
source venv/bin/activate | |
brew install ollama | |
ollama serve & | |
sleep 10 | |
ollama pull gemma2:2b | |
ollama list | |
- name: Reading cached Ollama models | |
working-directory: ${{ github.workspace }} | |
run: | | |
echo "Cache Hit Status - ${{ steps.cache_ollama.outputs.cache-hit }}" | |
source venv/bin/activate | |
brew install ollama | |
ollama serve & | |
sleep 10 | |
ollama list | |
- name: Run tests with coverage | |
working-directory: ${{ github.workspace }} | |
run: | | |
source venv/bin/activate | |
coverage run --include=aiagents4pharma/talk2knowledgegraphs/* -m pytest --cache-clear aiagents4pharma/talk2knowledgegraphs/tests/ | |
- name: Check coverage | |
working-directory: ${{ github.workspace }} | |
run: | | |
source venv/bin/activate | |
coverage report -m | |
TOTAL_COVERAGE=$(coverage report -m | awk 'END {print int($NF)}') | |
if [[ $TOTAL_COVERAGE -ne 100 ]]; then | |
echo "Code coverage is not 100%. Please check the coverage report." | |
exit 1 | |
fi | |
env: | |
COVERAGE_FILE: './.coverage' | |
# code coverage job for ubuntu | |
code-cov-ubuntu: | |
name: code-coverage | |
needs: pylint-ubuntu | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.12 | |
- name: Cache venv | |
uses: actions/cache@v4 | |
id: cache_venv | |
with: | |
path: | | |
${{ github.workspace }}/venv/* | |
key: ${{ runner.os }}-venv | |
- name: Cache Ollama models | |
uses: actions/cache@v4 | |
id: cache_ollama | |
with: | |
path: | | |
${{ github.workspace }}/ollama-models/* | |
key: ${{ runner.os }}-ollama | |
- name: Install and Pull Ollama models | |
if: steps.cache_ollama.outputs.cache-hit != 'true' | |
working-directory: ${{ github.workspace }} | |
run: | | |
source venv/bin/activate | |
curl -fsSL https://ollama.com/install.sh | sh | |
mkdir ollama-models | |
export OLLAMA_MODELS=${{ github.workspace }}/ollama-models | |
ollama serve & | |
sleep 10 | |
ollama pull gemma2:2b | |
ollama list | |
ls -l ${{ github.workspace }}/ollama-models/ | |
- name: Reading cached Ollama models | |
working-directory: ${{ github.workspace }} | |
run: | | |
echo "Cache Hit Status - ${{ steps.cache_ollama.outputs.cache-hit }}" | |
source venv/bin/activate | |
curl -fsSL https://ollama.com/install.sh | sh | |
export OLLAMA_MODELS=~/.ollama/models | |
ollama serve & | |
sleep 10 | |
ollama list | |
ls -l ${{ github.workspace }}/ollama-models | |
- name: Run tests with coverage | |
working-directory: ${{ github.workspace }} | |
run: | | |
source venv/bin/activate | |
coverage run --include=aiagents4pharma/talk2knowledgegraphs/* -m pytest --cache-clear aiagents4pharma/talk2knowledgegraphs/tests/ | |
- name: Check coverage | |
working-directory: ${{ github.workspace }} | |
run: | | |
source venv/bin/activate | |
coverage report -m | |
TOTAL_COVERAGE=$(coverage report -m | awk 'END {print int($NF)}') | |
if [[ $TOTAL_COVERAGE -ne 100 ]]; then | |
echo "Code coverage is not 100%. Please check the coverage report." | |
exit 1 | |
fi | |
env: | |
COVERAGE_FILE: './.coverage' | |
# code coverage job for windows | |
code-cov-windows: | |
name: code-coverage | |
needs: pylint-windows | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.12 | |
- name: Cache venv | |
uses: actions/cache@v4 | |
id: cache_venv | |
with: | |
path: | | |
${{ github.workspace }}\venv\* | |
key: ${{ runner.os }}-venv | |
- name: Cache Ollama models | |
uses: actions/cache@v4 | |
id: cache_ollama | |
with: | |
path: | | |
C:\Users\runneradmin\.ollama\models | |
key: ${{ runner.os }}-ollama | |
- name: Install and Pull Ollama models | |
if: steps.cache_ollama.outputs.cache-hit != 'true' | |
working-directory: ${{ github.workspace }} | |
run: | | |
venv\Scripts\activate | |
curl -L https://ollama.com/download/ollama-windows-amd64.zip -o ollama-windows-amd64.zip | |
tar -xzf .\ollama-windows-amd64.zip | |
start ollama serve | |
sleep 10 | |
cmd /k ollama pull gemma2:2b | |
cmd /k ollama list | |
- name: Reading cached Ollama models | |
working-directory: ${{ github.workspace }} | |
run: | | |
echo "Cache Hit Status - ${{ steps.cache_ollama.outputs.cache-hit }}" | |
venv\Scripts\activate | |
curl -L https://ollama.com/download/ollama-windows-amd64.zip -o ollama-windows-amd64.zip | |
tar -xzf .\ollama-windows-amd64.zip | |
start ollama serve | |
sleep 10 | |
cmd /k ollama list | |
- name: Run tests with coverage | |
working-directory: ${{ github.workspace }} | |
run: | | |
venv\Scripts\activate | |
coverage run --include=aiagents4pharma/talk2knowledgegraphs/* -m pytest --cache-clear aiagents4pharma/talk2knowledgegraphs/tests/ | |
- name: Check coverage | |
working-directory: ${{ github.workspace }} | |
run: | | |
venv\Scripts\activate | |
coverage report -m | |
# $TOTAL_COVERAGE=(& coverage report -m | Select-Object -Last 1) -replace "[^\d]" # Extract the last line and remove non-numeric characters | |
$TOTAL_COVERAGE=(& coverage report -m | Select-Object -Last 1) | |
# split and extract the last element | |
$TOTAL_COVERAGE=($TOTAL_COVERAGE -split " ")[-1] | |
# remove non-numeric characters | |
$TOTAL_COVERAGE=($TOTAL_COVERAGE -replace "[^\d]") | |
# convert to int | |
$TOTAL_COVERAGE=[int]$TOTAL_COVERAGE | |
echo "Total coverage: $TOTAL_COVERAGE" | |
if ($TOTAL_COVERAGE -ne 100) { | |
Write-Host "Code coverage is not 100%. Please check the coverage report." | |
exit 1 | |
} | |
env: | |
COVERAGE_FILE: './.coverage' |