Skip to content

Exherbo parser: handle missing homepage and downloads #738

Exherbo parser: handle missing homepage and downloads

Exherbo parser: handle missing homepage and downloads #738

Workflow file for this run

name: CI
on: [ push, pull_request ]
jobs:
build:
env:
REPOLOGY_CONFIG: repology-test.conf.default
POSTGRESQL: 15
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install dependencies
# depends for jsonslicer, postgresql-liversion, rpm4 respectively
run: |
curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main $POSTGRESQL" > /etc/apt/sources.list.d/pgdg.list'
sudo apt-get update
sudo apt-get install libyajl-dev
sudo apt-get install postgresql-$POSTGRESQL postgresql-server-dev-$POSTGRESQL
sudo apt-get install libnss3-dev libnspr4-dev libmagic-dev libpopt-dev libarchive-dev libdb5.3-dev libgcrypt-dev libxslt1-dev
- name: Install libversion
run: |
mkdir _libversion
cd _libversion
wget -qO- https://github.com/repology/libversion/archive/master.tar.gz | tar -xzf- --strip-components 1
cmake .
make
sudo make install
sudo ldconfig
- name: Install postgresql-libversion
run: |
mkdir _postgresql-libversion
cd _postgresql-libversion
wget -qO- https://github.com/repology/postgresql-libversion/archive/master.tar.gz | tar -xzf- --strip-components 1
make
sudo make install
- name: Install rpm4
run: |
mkdir _rpm
cd _rpm
wget -qO- http://ftp.rpm.org/releases/rpm-4.16.x/rpm-4.16.0.tar.bz2 | tar -xjf- --strip-components 1
export PYTHON_CFLAGS="$(python3-config --cflags)" PYTHON_LIBS="$(python3-config --ldflags)"
./configure --enable-python --without-lua --prefix=$pythonLocation
make
sudo make install
- name: Install python dependencies
run: |
pip install -r requirements.txt
pip install -r requirements-dev.txt
pip install codecov
- name: Checkout rules
run: git clone --depth=1 https://github.com/repology/repology-rules.git rules.d
- name: Prepare database
run: |
sudo sed -i -e 's|peer|trust|' /etc/postgresql/$POSTGRESQL/main/pg_hba.conf
sudo sed -i -e 's|5433|5432|' /etc/postgresql/$POSTGRESQL/main/postgresql.conf
sudo pg_ctlcluster $POSTGRESQL main restart
sudo -u postgres psql -c "CREATE DATABASE repology_test;"
sudo -u postgres psql -c "CREATE USER repology_test WITH PASSWORD 'repology_test'"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE repology_test TO repology_test"
sudo -u postgres psql -d repology_test -c "GRANT CREATE ON SCHEMA public TO PUBLIC"
sudo -u postgres psql -d repology_test -c "CREATE EXTENSION IF NOT EXISTS pg_trgm"
sudo -u postgres psql -d repology_test -c "CREATE EXTENSION IF NOT EXISTS libversion"
- name: Check YAML schemas
run: make check
- name: Check with flake8
run: make flake8
- name: Check with mypy
run: make mypy
- name: Fill database with test data
run: ./repology-update.py --initdb --parse --database --postupdate
- name: Smoke test
run: |
./repology-dump.py --help
- name: Run unit tests
run: make test
env:
PYTEST_ARGS: --cov-report=xml --cov=repology
- name: Push coverage info
run: codecov