Skip to content

feat/textual enrichment #38

feat/textual enrichment

feat/textual enrichment #38

# 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: |
/usr/share/ollama/.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
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
curl -fsSL https://ollama.com/install.sh | sh
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 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'