new: [website] Added first version of the API endpoint in order to st… #648
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
name: API Test | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.10', '3.11', '3.12'] | |
name: Python ${{ matrix.python-version }} sample | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Checkout pysec submodule only | |
run: | | |
git submodule init vulnerabilitylookup/feeders/pysec | |
git submodule update vulnerabilitylookup/feeders/pysec | |
- name: Install poetry | |
run: pipx install poetry | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{matrix.python-version}} | |
cache: 'poetry' | |
- name: Cache kvrocks | |
id: kvrocks | |
uses: actions/cache@v4 | |
with: | |
path: ../kvrocks | |
key: ${{ runner.os }}-kvrocks | |
- name: Clone Kvrocks | |
uses: actions/checkout@v4 | |
with: | |
repository: apache/kvrocks | |
path: kvrocks-tmp | |
ref: 2.7 | |
submodules: true | |
- name: Install kvrocks | |
run: | | |
sudo apt-get update | |
sudo apt-get install gcc g++ make libsnappy-dev autoconf automake libtool libgtest-dev | |
mv kvrocks-tmp ../kvrocks | |
pushd .. | |
pushd kvrocks | |
./x.py build | |
popd | |
popd | |
- name: Clone Redis | |
uses: actions/checkout@v4 | |
with: | |
repository: redis/redis | |
path: redis-tmp | |
ref: 7.2 | |
- name: Install and setup redis | |
run: | | |
mv redis-tmp ../redis | |
pushd .. | |
pushd redis | |
make | |
popd | |
popd | |
- name: Setup PostgreSQL | |
uses: Harmon758/[email protected] | |
with: | |
postgresql db: 'vulnlookuptest' | |
postgresql user: 'postgres' | |
postgresql password: 'password' | |
- name: Install with poetry | |
run: | | |
python -m pip install --upgrade pip poetry | |
poetry install --with dev | |
echo VULNERABILITYLOOKUP_HOME=`pwd` > .env | |
- name: Clone PyVulnerabilityLookup | |
uses: actions/checkout@v4 | |
with: | |
repository: cve-search/PyVulnerabilityLookup | |
path: PyVulnerabilityLookup | |
- name: Run API tests | |
run: | | |
poetry run pip install -e PyVulnerabilityLookup/ | |
cp config/website.py.sample config/website.py | |
poetry run flask --app website.app db_init | |
poetry run flask --app website.app db stamp head | |
poetry run flask --app website.app create_admin --login admin --password admin --email [email protected] | |
export API_KEY=`poetry run flask --app website.app user_get_api_key --login admin` | |
poetry run run_backend --start | |
poetry run pysec_importer & | |
poetry run start_website & | |
sleep 30 | |
export INSTANCE_URL="http://127.0.0.1:10001" | |
poetry run pytest PyVulnerabilityLookup/tests/test_web.py | |
poetry run stop | |
env: | |
TESTING: gh_action |