Cleanup matrices #123
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
name: Check queries | |
# This action runs: | |
# - When this file changes | |
# - When changes on code (src, include, sql) | |
# - When changes on data or testing scripts (tools/testers) | |
# - When the way the build changes (CMakeLists.txt) | |
# - On request | |
# | |
# using | |
# - the postgres installed version | |
on: | |
workflow_dispatch: | |
push: | |
paths: | |
- '.github/workflows/check-queries.yml' | |
- 'src/**' | |
- 'include/**' | |
- 'sql/**' | |
- 'docqueries/**' | |
- 'tools/testers/**' | |
- 'CMakeLists.txt' | |
branches-ignore: | |
- 'gh-pages' | |
tags: [] | |
pull_request: | |
paths: | |
- '.github/workflows/check-queries.yml' | |
- 'src/**' | |
- 'include/**' | |
- 'sql/**' | |
- 'docqueries/**' | |
- 'tools/testers/**' | |
- 'CMakeLists.txt' | |
branches-ignore: | |
- 'gh-pages' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
env: | |
postgis: 3 | |
release: Release | |
os: ubuntu-latest | |
vroom: 1.12.0 | |
jobs: | |
build: | |
name: Check Queries | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get postgres version | |
run: | | |
sudo service postgresql start | |
pgver=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d+ \()') | |
echo "PGVER=${pgver}" >> $GITHUB_ENV | |
echo "PGPORT=5432" >> $GITHUB_ENV | |
echo "PGBIN=/usr/lib/postgresql/${pgver}/bin" >> $GITHUB_ENV | |
echo "PGINC=/usr/include/postgresql/${pgver}/server" >> $GITHUB_ENV | |
- name: Add PostgreSQL APT repository | |
run: | | |
sudo apt-get install curl ca-certificates gnupg | |
curl 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" > /etc/apt/sources.list.d/pgdg.list' | |
- name: Install python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
# vrpRouting dependencies | |
sudo apt-get install -y \ | |
postgresql-${PGVER} \ | |
postgresql-${PGVER}-pgtap \ | |
postgresql-${PGVER}-postgis-${{ env.postgis }} \ | |
postgresql-${PGVER}-postgis-${{ env.postgis }}-scripts \ | |
postgresql-${PGVER}-pgrouting \ | |
postgresql-server-dev-${PGVER} \ | |
postgresql-plpython3-${PGVER} | |
# vroom dependencies | |
sudo apt-get install libssl-dev libasio-dev libglpk-dev | |
- name: Install Google OR-Tools | |
run: | | |
sudo pip install --root=/ ortools | |
- name: Cache VROOM | |
id: cache-vroom | |
uses: actions/cache@v4 | |
env: | |
cache-name: vroom | |
with: | |
path: vroom-${{ env.vroom }} | |
key: ${{ env.os }}-${{ env.cache-name }}-${{ env.vroom }} | |
- name: Checkout VROOM | |
if: steps.cache-vroom.outputs.cache-hit != 'true' | |
uses: actions/checkout@v4 | |
with: | |
path: vroom-${{ env.vroom }} | |
repository: VROOM-Project/vroom | |
ref: "v${{ env.vroom }}" | |
submodules: true | |
- name: Build VROOM | |
if: steps.cache-vroom.outputs.cache-hit != 'true' | |
run: | | |
cd vroom-${{ env.vroom }}/src | |
USE_ROUTING=false make shared | |
- name: Configure | |
run: | | |
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH | |
VROOM=$(pwd)/vroom-${{ env.vroom }} | |
mkdir build | |
cd build | |
cmake -DCMAKE_BUILD_TYPE=${{ env.release }} \ | |
-DPostgreSQL_INCLUDE_DIR=${PGINC} -DPOSTGRESQL_BIN=${PGBIN} \ | |
-DVROOM_INSTALL_PATH=${VROOM} .. | |
- name: Build | |
run: | | |
cd build | |
make -j 4 | |
sudo make install | |
- name: Unpack data | |
run: | | |
cd tools/testers | |
tar -xf matrix_new_values.tar.gz | |
- name: Create superuser | |
run: | | |
sudo service postgresql start | |
export PG_RUNNER_USER=`whoami` | |
sudo -u postgres psql -p ${PGPORT} -c "DROP DATABASE IF EXISTS \"${PG_RUNNER_USER}\";" | |
sudo -u postgres psql -p ${PGPORT} -c "DROP ROLE IF EXISTS \"${PG_RUNNER_USER}\";" | |
sudo -u postgres psql -p ${PGPORT} -c "CREATE ROLE \"${PG_RUNNER_USER}\" WITH LOGIN SUPERUSER;" | |
sudo -u postgres psql -p ${PGPORT} -c "CREATE DATABASE \"${PG_RUNNER_USER}\";" | |
echo "PG_RUNNER_USER=${PG_RUNNER_USER}" >> $GITHUB_ENV | |
- name: Test signature is up to date | |
run: | | |
sudo service postgresql start | |
psql -c "CREATE DATABASE ____sigs_routing____;" | |
psql -c "SHOW timezone;" | |
tools/scripts/get_signatures.sh -p ${PGPORT} | |
git diff --exit-code --quiet sql/sigs/*.sig | |
- name: Test documentation queries are up to date | |
run: | | |
sudo service postgresql start | |
psql -c "CREATE DATABASE ___vrp___test___;" | |
TESTDIRS="version" | |
for d in ${TESTDIRS} | |
do | |
./tools/testers/doc_queries_generator.pl -pgport "${PGPORT}" -doc -alg "${d}" | |
done | |
git diff | |
./tools/testers/doc_queries_generator.pl -pgport "${PGPORT}" |