-
-
Notifications
You must be signed in to change notification settings - Fork 7
134 lines (113 loc) · 3.94 KB
/
Copy pathubuntu.yml
File metadata and controls
134 lines (113 loc) · 3.94 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
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'
tags: []
pull_request:
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
jobs:
build:
name: pgtap
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
release: [Debug, Release]
psql: [12,13,14,15,16,17,18]
os: [ubuntu-latest, ubuntu-22.04]
steps:
- uses: actions/checkout@v4
- name: Set postgres version
run: |
echo "PGVER=${{ matrix.psql }}" >> $GITHUB_ENV
echo "PGPORT=5432" >> $GITHUB_ENV
echo "PGBIN=/usr/lib/postgresql/${{ matrix.psql }}/bin" >> $GITHUB_ENV
echo "PGINC=/usr/include/postgresql/${{ matrix.psql }}/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 python
uses: actions/setup-python@v5
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-server-dev-${PGVER} \
postgresql-${PGVER}-postgis-${{ env.postgis }} \
postgresql-${PGVER}-postgis-${{ env.postgis }}-scripts \
postgresql-${PGVER}-pgrouting
- name: Configure and build
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} ..
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___