@@ -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@v2
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,18 +51,17 @@ jobs:
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
61
58
- name : Install dependencies
62
59
run : |
63
60
sudo apt-get update
64
61
sudo apt-get install -y \
65
- libboost-graph-dev \
66
62
postgresql-${PGVER} \
67
- postgresql-${PGVER}-postgis-${PGIS } \
68
- postgresql-${PGVER}-postgis-${PGIS }-scripts \
63
+ postgresql-${PGVER}-postgis-${{ env.postgis } } \
64
+ postgresql-${PGVER}-postgis-${{ env.postgis } }-scripts \
69
65
postgresql-server-dev-${PGVER} \
70
66
graphviz \
71
67
doxygen
@@ -77,35 +73,41 @@ jobs:
77
73
run : |
78
74
sudo apt-get install libssl-dev libasio-dev libglpk-dev
79
75
76
+ - name : Install Google OR-Tools dependencies
77
+ run : |
78
+ sudo pip install --root=/ ortools
79
+
80
80
- name : Cache VROOM
81
81
id : cache-vroom
82
- uses : actions/cache@v2
82
+ uses : actions/cache@v4
83
83
env :
84
84
cache-name : vroom
85
85
with :
86
- path : |
87
- ~/vroom-${{ env.VROOMVER }}
88
- 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
89
97
90
98
- name : Build VROOM
91
99
if : steps.cache-vroom.outputs.cache-hit != 'true'
92
100
run : |
93
- git clone --depth 1 --branch v${{ env.VROOMVER }} https://github.com/VROOM-Project/vroom ~/vroom-${{ env.VROOMVER }}
94
-
95
- # init the required submodules
96
- cd ~/vroom-${{ env.VROOMVER }}/
97
- git submodule update --init
98
-
99
- # Using "shared" target for creating Position Independent Code, disabling use of routing
100
- cd ~/vroom-${{ env.VROOMVER }}/src
101
+ cd vroom-${{ env.vroom }}/src
101
102
USE_ROUTING=false make shared
102
103
103
104
- name : Configure
104
105
run : |
105
106
export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
107
+ VROOM=$(pwd)/vroom-${{ env.vroom }}
106
108
mkdir build
107
109
cd build
108
- 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 } ..
109
111
110
112
- name : Build
111
113
run : |
@@ -115,11 +117,6 @@ jobs:
115
117
sudo make install
116
118
make doxy
117
119
118
- - name : Initialize mandatory git config
119
- run : |
120
- git config user.name "github-actions[bot]"
121
- git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
122
-
123
120
- name : Update Users Documentation
124
121
run : |
125
122
git checkout origin/gh-pages
@@ -150,10 +147,10 @@ jobs:
150
147
tar -zcvf doc-v${PROJECT_VERSION}-en.tar.gz doc-v${PROJECT_VERSION}-en
151
148
152
149
cd ../..
153
- 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
154
151
155
152
# Only executed during the first release
156
- grep -q '[^[:space:]]' < release_body.txt || cp NEWS release_body.txt
153
+ grep -q '[^[:space:]]' < release_body.txt || cp NEWS.md release_body.txt
157
154
158
155
echo >> release_body.txt
159
156
echo "**Attachments**" >> release_body.txt
0 commit comments