File: check-queries.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 (131 lines) | stat: -rw-r--r-- 3,939 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
name: Check queries
# 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

# Makes a general check on the files
# - 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)
#
# using
# - the installed version on actions
# - the latest postgis version

on:
  workflow_dispatch:
  push:
    paths:
      - '.github/workflows/check-queries.yml'
      - 'src/**'
      - 'include/**'
      - 'sql/**'
      - 'docqueries/**'
      - 'tools/testers/**'
      - 'CMakeLists.txt'

    branches-ignore:
      - 'gh-pages'

  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

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest

    strategy:
        fail-fast: false

    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 "PGPORT=5432" >> $GITHUB_ENV
          echo "PGIS=3" >> $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 dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y \
            doxygen graphviz \
            libboost-graph-dev \
            libtap-parser-sourcehandler-pgtap-perl \
            postgresql-${PGVER} \
            postgresql-${PGVER}-pgtap \
            postgresql-${PGVER}-postgis-${PGIS} \
            postgresql-${PGVER}-postgis-${PGIS}-scripts \
            postgresql-server-dev-${PGVER}

      - name: Configure
        run: |
          export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
          mkdir build
          cd build
          cmake -DPOSTGRESQL_VERSION=${PGVER} -DCMAKE_BUILD_TYPE=Debug -DBUILD_DOXY=ON ..

      - name: Build
        run: |
          cd build
          make -j 4
          sudo make install

      - name: Test signature is up to date
        run: |
          sudo service postgresql start
          sudo -u postgres createdb -p ${PGPORT}  ____sigs_routing____
          sudo -u postgres psql -p ${PGPORT} -c "CREATE ROLE runner SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN" -d ____sigs_routing____
          tools/release-scripts/get_signatures.sh -p ${PGPORT}
          git diff --name-only sql/sigs/*.sig
          git diff --exit-code --quiet sql/sigs/*.sig

      - name: Test documentation queries are up to date
        run: |
          sudo -u postgres createdb -p ${PGPORT}  pgr_test__db__test
          # queries that might change
          # mincut: results change depending on boost
          TESTDIRS="mincut"
          for d in ${TESTDIRS}
          do
            ./tools/testers/doc_queries_generator.pl -pgver "${PGVER}" -pguser runner -documentation -alg "docqueries/${d}"
          done

          ./tools/testers/doc_queries_generator.pl -pgver "${PGVER}"

      - name: Check Developers Documentation
        run: |
          cd build
          make doxy
          more DOXYLOG
          [ ! -s DOXYLOG ] || echo "There are Doxygen warnings"
          [ ! -s DOXYLOG ] || exit 1