Update locale: commit for hash 34a5745 #105
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: Build for Ubuntu | |
# 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 | |
on: | |
workflow_dispatch: | |
push: | |
paths: | |
- '.github/workflows/ubuntu.yml' | |
- 'src/**' | |
- 'include/**' | |
- 'sql/**' | |
- 'pgtap/**' | |
- 'tools/testers/**' | |
- 'CMakeLists.txt' | |
branches-ignore: | |
- 'gh-pages' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
env: | |
postgis: 3 | |
vroom: 1.12.0 | |
jobs: | |
build: | |
name: G++ compiler | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
release: [Debug, Release] | |
psql: [12,13,14,15] | |
os: [ubuntu-latest, ubuntu-24.04, ubuntu-22.04] | |
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 | |
PGP=5433 | |
if [ "${{ matrix.psql }}" == "${pgver}" ]; then PGP=5432; fi | |
echo "PGPORT=${PGP}" >> $GITHUB_ENV | |
echo "PGBIN=/usr/lib/postgresql/${{ matrix.psql }}/bin" >> $GITHUB_ENV | |
echo "PGINC=/usr/include/postgresql/${{ matrix.psql }}/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 \ | |
libtap-parser-sourcehandler-pgtap-perl \ | |
postgresql-${{ matrix.psql }} \ | |
postgresql-${{ matrix.psql }}-pgtap \ | |
postgresql-${{ matrix.psql }}-postgis-${{ env.postgis }} \ | |
postgresql-${{ matrix.psql }}-postgis-${{ env.postgis }}-scripts \ | |
postgresql-${{ matrix.psql }}-pgrouting \ | |
postgresql-server-dev-${{ matrix.psql }} \ | |
postgresql-plpython3-${{ matrix.psql }} | |
# vroom dependencies | |
sudo apt-get install libssl-dev libasio-dev libglpk-dev | |
- name: Install Google OR-Tools dependencies | |
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: ${{ matrix.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/${{ matrix.psql }}/bin:$PATH | |
VROOM=$(pwd)/vroom-${{ env.vroom }} | |
mkdir build | |
cd build | |
cmake -DCMAKE_BUILD_TYPE=${{ matrix.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: pgTap test | |
run: | | |
sudo service postgresql start | |
psql -c "CREATE DATABASE ___vrp___test___;" | |
bash ./tools/testers/pg_prove_tests.sh -U ${PG_RUNNER_USER} -p ${PGPORT} -d ___vrp___test___ | |