-
-
Notifications
You must be signed in to change notification settings - Fork 39
140 lines (119 loc) · 4.33 KB
/
boost_version.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
name: Boost supported versions
# This action runs:
# - When this file changes
# - When changes on code (src, include)
# - When changes on data or testing scripts (tools/testers)
# - When the way the build changes (CMakeLists.txt)
#
# Test is done on:
# - the preinstalled postgres version
# - postgis 3
#
# The boost version tested are when changes that affect pgRouting on
# - boost::graph
# - boost::geometry
# See https://www.boost.org/users/history/
# Currently
# - boost::geometry has not changed anything we use
#
# boost::graph
# - 1.84 is failing its own tests (Jul 2022)
# - 1.83 transitive closure & stoer wagner changed on 83 (Jul 2022)
# - 1.80 changed on 1.80 (Aug 2022)
# - 1.75 requires C++14 (Dec 2020)
# - 1.68 changed on 1.68 (Aug 2018)
# - 1.56 is the minimum version we ask (Aug 2014)
on:
push:
paths:
- '.github/workflows/boost_version.yml'
- 'src/**'
- 'include/**'
- 'pgtap/**'
- 'tools/testers/**'
- './CMakeLists.txt'
branches-ignore:
- 'gh-pages'
tags: []
pull_request:
paths:
- '.github/workflows/boost_version.yml'
- 'src/**'
- 'include/**'
- 'pgtap/**'
- 'tools/testers/**'
- './CMakeLists.txt'
branches-ignore:
- 'gh-pages'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
name: Ubuntu Boost
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
boost_minor: [56, 68, 75, 76, 77, 78, 79, 80, 83, 84]
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 "PGIS=3" >> $GITHUB_ENV
PG_USER=$(whoami)
echo "PG_RUNNER_USER=${PG_USER}" >> $GITHUB_ENV
PG_PORT=5432
echo "PGPORT=${PG_PORT}" >> $GITHUB_ENV
sudo -u postgres psql -p "${PG_PORT}" -c "DROP ROLE IF EXISTS \"${PG_USER}\";"
sudo -u postgres psql -p "${PG_PORT}" -c "CREATE ROLE \"${PG_USER}\" WITH LOGIN SUPERUSER;"
sudo -u postgres psql -p "${PG_PORT}" -c "CREATE DATABASE \"${PG_USER}\";"
- 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@v4
with:
python-version: '3.x'
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libtap-parser-sourcehandler-pgtap-perl \
postgresql-${PGVER} \
postgresql-${PGVER}-pgtap \
postgresql-${PGVER}-postgis-${PGIS} \
postgresql-${PGVER}-postgis-${PGIS}-scripts \
postgresql-server-dev-${PGVER}
python -m pip install --upgrade pip
pip install -r requirements.txt
wget https://sourceforge.net/projects/boost/files/boost/1.${{ matrix.boost_minor }}.0/boost_1_${{ matrix.boost_minor }}_0.tar.bz2
#wget https://dl.bintray.com/boostorg/release/1.${{ matrix.boost_minor }}.0/source/boost_1_${{ matrix.boost_minor }}_0.tar.bz2
sudo tar --bzip2 -xf boost_1_${{ matrix.boost_minor }}_0.tar.bz2
sudo mv boost_1_${{ matrix.boost_minor }}_0/boost /usr/include/
- name: Configure
run: |
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
mkdir build
cd build
cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Debug -DWITH_DOC=OFF ..
- name: Build
run: |
cd build
make -j 4
sudo make install
- name: Test
run: |
sudo service postgresql start
psql -c "CREATE DATABASE ___pgr___test___;"
DIR=$(git rev-parse --show-toplevel)
bash "${DIR}/tools/testers/setup_db.sh" "${PGPORT}" ___pgr___test___ "${PG_RUNNER_USER}" "3.7.0"
pg_prove -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap"