-
-
Notifications
You must be signed in to change notification settings - Fork 7
146 lines (123 loc) · 4.26 KB
/
Copy pathqueries.yml
File metadata and controls
146 lines (123 loc) · 4.26 KB
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
141
142
143
144
145
146
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
# - postgres installed version on actions
on:
workflow_dispatch:
push:
paths:
- '.github/workflows/queries.yml'
- 'src/**'
- 'include/**'
- 'sql/**'
- 'docqueries/**'
- 'tools/testers/**'
- 'CMakeLists.txt'
- 'tools/scripts/get_signatures.sh'
branches-ignore:
- 'gh-pages'
tags: []
pull_request:
paths:
- '.github/workflows/queries.yml'
- 'src/**'
- 'include/**'
- 'sql/**'
- 'docqueries/**'
- 'tools/testers/**'
- 'CMakeLists.txt'
- 'tools/scripts/get_signatures.sh'
branches-ignore:
- 'gh-pages'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
env:
postgis: 3
os: ubuntu-latest
jobs:
build:
name: Check Queries
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
release: [Debug, Release]
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: 'Raise Priority for apt.postgresql.org'
run: |
cat << EOF >> ./pgdg.pref
Package: *
Pin: release o=apt.postgresql.org
Pin-Priority: 600
EOF
sudo mv ./pgdg.pref /etc/apt/preferences.d/
sudo apt update
- name: Add PostgreSQL APT repository
run: |
sudo apt-get purge postgresql-*
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg-testing main ${{ matrix.psql }}" > /etc/apt/sources.list.d/pgdg.list'
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
- name: Install dependencies
run: |
sudo apt-get update
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}
- name: Configure
run: |
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=${{ matrix.release }} \
-DPostgreSQL_INCLUDE_DIR=${PGINC} -DPOSTGRESQL_BIN=${PGBIN} ..
- 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
tools/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 service postgresql start
psql -c "CREATE DATABASE ___vrp___test___;"
./tools/testers/doc_queries_generator.pl -pgport "${PGPORT}"