File: boost_version.yml

package info (click to toggle)
pgrouting 4.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,332 kB
  • sloc: cpp: 21,315; sql: 10,419; ansic: 9,795; perl: 1,142; sh: 919; javascript: 314; xml: 182; makefile: 29
file content (135 lines) | stat: -rw-r--r-- 4,442 bytes parent folder | download
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
name: Boost supported versions
# This file is part of the pgRouting project.
# Copyright (c) 2020-2026 pgRouting developers
# License: GPL-2 See https://github.com/pgRouting/pgrouting/blob/main/LICENSE

# 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.86 does not support C++11 (Aug 2024)
# - 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:
  workflow_dispatch:
  push:
    paths:
      - '.github/workflows/boost_version.yml'
      - 'src/**'
      - 'include/**'
      - 'pgtap/**'
      - 'tools/testers/**'
      - 'CMakeLists.txt'

    branches-ignore:
      - 'gh-pages'

  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, 86]

    steps:
      - uses: actions/checkout@v6

      - 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 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}

          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 ..

      - 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}" "4.0.1"
          pg_prove  -Q -f --normalize --directives --recurse -U "${PG_RUNNER_USER}" -d ___pgr___test___ "pgtap"