@@ -3,6 +3,9 @@ name: Release
33on :
44 workflow_dispatch :
55
6+ env :
7+ postgis : 3
8+ vroom : 1.12.0
69
710jobs :
811 release :
@@ -14,37 +17,31 @@ jobs:
1417
1518 steps :
1619 - name : Checkout repository
17- uses : actions/checkout@v3
20+ uses : actions/checkout@v4
1821 with :
1922 fetch-depth : 0
2023
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+
2129 - name : Get postgres version
2230 run : |
2331 sudo service postgresql start
24- PGVER=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d \()')
32+ PGVER=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d+ \()')
2533 PROJECT_VERSION=$(grep -Po '(?<=project\(VRPROUTING VERSION )[^;]+' CMakeLists.txt)
2634 echo "PGVER=${PGVER}" >> $GITHUB_ENV
2735 echo "PGPORT=5432" >> $GITHUB_ENV
28- echo "PGIS=3" >> $GITHUB_ENV
2936 echo "PROJECT_VERSION=${PROJECT_VERSION}" >> $GITHUB_ENV
30- echo "VROOMVER=1.12.0 " >> $GITHUB_ENV
37+ echo "TAG_NAME=v${PROJECT_VERSION} " >> $GITHUB_ENV
3138
32- - name : Verify Tag Name
39+ - name : Create and Push Tag
3340 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 }}
4845
4946 - name : Add PostgreSQL APT repository
5047 run : |
5451 $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
5552
5653 - name : Install python
57- uses : actions/setup-python@v2
54+ uses : actions/setup-python@v5
5855 with :
5956 python-version : ' 3.x'
6057
6360 sudo apt-get update
6461 sudo apt-get install -y \
6562 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 \
6865 postgresql-server-dev-${PGVER} \
6966 graphviz \
7067 doxygen
@@ -76,35 +73,41 @@ jobs:
7673 run : |
7774 sudo apt-get install libssl-dev libasio-dev libglpk-dev
7875
76+ - name : Install Google OR-Tools dependencies
77+ run : |
78+ sudo pip install --root=/ ortools
79+
7980 - name : Cache VROOM
8081 id : cache-vroom
81- uses : actions/cache@v2
82+ uses : actions/cache@v4
8283 env :
8384 cache-name : vroom
8485 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
8897
8998 - name : Build VROOM
9099 if : steps.cache-vroom.outputs.cache-hit != 'true'
91100 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
100102 USE_ROUTING=false make shared
101103
102104 - name : Configure
103105 run : |
104106 export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
107+ VROOM=$(pwd)/vroom-${{ env.vroom }}
105108 mkdir build
106109 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 } ..
108111
109112 - name : Build
110113 run : |
@@ -114,11 +117,6 @@ jobs:
114117 sudo make install
115118 make doxy
116119
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-
122120 - name : Update Users Documentation
123121 run : |
124122 git checkout origin/gh-pages
@@ -149,10 +147,10 @@ jobs:
149147 tar -zcvf doc-v${PROJECT_VERSION}-en.tar.gz doc-v${PROJECT_VERSION}-en
150148
151149 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
153151
154152 # 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
156154
157155 echo >> release_body.txt
158156 echo "**Attachments**" >> release_body.txt
0 commit comments