@@ -3,6 +3,9 @@ name: Release
3
3
on :
4
4
workflow_dispatch :
5
5
6
+ env :
7
+ postgis : 3
8
+ vroom : 1.12.0
6
9
7
10
jobs :
8
11
release :
@@ -14,37 +17,31 @@ jobs:
14
17
15
18
steps :
16
19
- name : Checkout repository
17
- uses : actions/checkout@v3
20
+ uses : actions/checkout@v4
18
21
with :
19
22
fetch-depth : 0
20
23
24
+ - name : Initialize mandatory git config
25
+ run : |
26
+ git config user.name "github-actions[bot]"
27
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
28
+
21
29
- name : Get postgres version
22
30
run : |
23
31
sudo service postgresql start
24
- PGVER=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d \()')
32
+ PGVER=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d+ \()')
25
33
PROJECT_VERSION=$(grep -Po '(?<=project\(VRPROUTING VERSION )[^;]+' CMakeLists.txt)
26
34
echo "PGVER=${PGVER}" >> $GITHUB_ENV
27
35
echo "PGPORT=5432" >> $GITHUB_ENV
28
- echo "PGIS=3" >> $GITHUB_ENV
29
36
echo "PROJECT_VERSION=${PROJECT_VERSION}" >> $GITHUB_ENV
30
- echo "VROOMVER=1.12.0 " >> $GITHUB_ENV
37
+ echo "TAG_NAME=v${PROJECT_VERSION} " >> $GITHUB_ENV
31
38
32
- - name : Verify Tag Name
39
+ - name : Create and Push Tag
33
40
run : |
34
- TAG_NAME=${GITHUB_REF#refs/*/}
35
- echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV
36
- echo ${TAG_NAME}
37
- echo ${PROJECT_VERSION}
38
- if [ "${TAG_NAME}" != "v${PROJECT_VERSION}" ]; then
39
- echo "Tag name should be v${PROJECT_VERSION}"
40
- exit 1
41
- fi
42
-
43
- - name : Extract branch name
44
- run : |
45
- raw=$(git branch -r --contains ${{ github.ref }})
46
- branch=${raw##*/}
47
- echo "BRANCH=$branch" >> $GITHUB_ENV
41
+ git tag -a "${TAG_NAME}" -m "Release version ${TAG_NAME}"
42
+ git push origin "${TAG_NAME}"
43
+ env :
44
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
48
45
49
46
- name : Add PostgreSQL APT repository
50
47
run : |
54
51
$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
55
52
56
53
- name : Install python
57
- uses : actions/setup-python@v2
54
+ uses : actions/setup-python@v5
58
55
with :
59
56
python-version : ' 3.x'
60
57
63
60
sudo apt-get update
64
61
sudo apt-get install -y \
65
62
postgresql-${PGVER} \
66
- postgresql-${PGVER}-postgis-${PGIS } \
67
- postgresql-${PGVER}-postgis-${PGIS }-scripts \
63
+ postgresql-${PGVER}-postgis-${{ env.postgis } } \
64
+ postgresql-${PGVER}-postgis-${{ env.postgis } }-scripts \
68
65
postgresql-server-dev-${PGVER} \
69
66
graphviz \
70
67
doxygen
@@ -76,35 +73,41 @@ jobs:
76
73
run : |
77
74
sudo apt-get install libssl-dev libasio-dev libglpk-dev
78
75
76
+ - name : Install Google OR-Tools dependencies
77
+ run : |
78
+ sudo pip install --root=/ ortools
79
+
79
80
- name : Cache VROOM
80
81
id : cache-vroom
81
- uses : actions/cache@v2
82
+ uses : actions/cache@v4
82
83
env :
83
84
cache-name : vroom
84
85
with :
85
- path : |
86
- ~/vroom-${{ env.VROOMVER }}
87
- key : ${{ runner.os }}-${{ env.cache-name }}-${{ env.VROOMVER }}
86
+ path : vroom-${{ env.vroom }}
87
+ key : ${{ matrix.os }}-${{ env.cache-name }}-${{ env.vroom }}
88
+
89
+ - name : Checkout VROOM
90
+ if : steps.cache-vroom.outputs.cache-hit != 'true'
91
+ uses : actions/checkout@v4
92
+ with :
93
+ path : vroom-${{ env.vroom }}
94
+ repository : VROOM-Project/vroom
95
+ ref : " v${{ env.vroom }}"
96
+ submodules : true
88
97
89
98
- name : Build VROOM
90
99
if : steps.cache-vroom.outputs.cache-hit != 'true'
91
100
run : |
92
- git clone --depth 1 --branch v${{ env.VROOMVER }} https://github.com/VROOM-Project/vroom ~/vroom-${{ env.VROOMVER }}
93
-
94
- # init the required submodules
95
- cd ~/vroom-${{ env.VROOMVER }}/
96
- git submodule update --init
97
-
98
- # Using "shared" target for creating Position Independent Code, disabling use of routing
99
- cd ~/vroom-${{ env.VROOMVER }}/src
101
+ cd vroom-${{ env.vroom }}/src
100
102
USE_ROUTING=false make shared
101
103
102
104
- name : Configure
103
105
run : |
104
106
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
107
+ VROOM=$(pwd)/vroom-${{ env.vroom }}
105
108
mkdir build
106
109
cd build
107
- cmake -DPOSTGRESQL_VERSION=${PGVER} -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Release -DES=ON -DVROOM_INSTALL_PATH=$HOME/vroom-${{ env.VROOMVER } } ..
110
+ cmake -DPOSTGRESQL_VERSION=${PGVER} -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Release -DES=ON -DVROOM_INSTALL_PATH=${VROOM } ..
108
111
109
112
- name : Build
110
113
run : |
@@ -114,11 +117,6 @@ jobs:
114
117
sudo make install
115
118
make doxy
116
119
117
- - name : Initialize mandatory git config
118
- run : |
119
- git config user.name "github-actions[bot]"
120
- git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
121
-
122
120
- name : Update Users Documentation
123
121
run : |
124
122
git checkout origin/gh-pages
@@ -149,10 +147,10 @@ jobs:
149
147
tar -zcvf doc-v${PROJECT_VERSION}-en.tar.gz doc-v${PROJECT_VERSION}-en
150
148
151
149
cd ../..
152
- grep -Pzo "(?s)v ${PROJECT_VERSION//./\\.} Release Notes.*?(?=v.\..\.. Release Notes )" NEWS | tr '\0' '\n' > release_body.txt
150
+ grep -Pzo "(?s)### vrpRouting ${PROJECT_VERSION//./\\.} Release Notes.*?(?=## vrpRouting )" NEWS.md | tr '\0' '\n' > release_body.txt
153
151
154
152
# Only executed during the first release
155
- grep -q '[^[:space:]]' < release_body.txt || cp NEWS release_body.txt
153
+ grep -q '[^[:space:]]' < release_body.txt || cp NEWS.md release_body.txt
156
154
157
155
echo >> release_body.txt
158
156
echo "**Attachments**" >> release_body.txt
0 commit comments