File: website.yml

package info (click to toggle)
pgrouting 4.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,332 kB
  • sloc: cpp: 21,315; sql: 10,419; ansic: 9,795; perl: 1,142; sh: 919; javascript: 314; xml: 182; makefile: 29
file content (131 lines) | stat: -rw-r--r-- 4,256 bytes parent folder | download
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
name: Website
# This file is part of the pgRouting project.
# Copyright (c) 2021-2026 pgRouting developers
# License: GPL-2 See https://github.com/pgRouting/pgrouting/blob/main/LICENSE

on:
  workflow_dispatch:
  push:
    paths:
      - '.github/workflows/website.yml'
      - 'doc/**'
      - 'locale/**'
      - 'CMakeLists.txt'
    branches:
      - main
      - develop

permissions:
  contents: read

jobs:
  release:
    permissions:
      contents: write  # for Git to git push
    name: Update Website
    runs-on: ubuntu-latest
    if: ${{ github.repository_owner == 'pgRouting' }}

    strategy:
        fail-fast: false

    steps:
      - name: Checkout repository
        uses: actions/checkout@v6
        with:
          fetch-depth: 0

      - name: Get postgres version
        run: |
          sudo service postgresql start
          PGVER=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d+ \()')
          PROJECT_VERSION=$(grep -Po '(?<=project\(PGROUTING VERSION )[^;]+' CMakeLists.txt)
          echo "PGVER=${PGVER}" >> $GITHUB_ENV
          echo "PGPORT=5432" >> $GITHUB_ENV
          echo "PGIS=3" >> $GITHUB_ENV
          echo "PROJECT_VERSION=${PROJECT_VERSION}" >> $GITHUB_ENV

      - name: Extract branch name and commit hash
        run: |
          branch=${GITHUB_REF#refs/heads/}
          echo "BRANCH=$branch" >> $GITHUB_ENV
          git_hash=$(git rev-parse --short "$GITHUB_SHA")
          echo "GIT_HASH=$git_hash" >> $GITHUB_ENV

      - name: Add PostgreSQL APT repository
        run: |
          sudo apt-get install curl ca-certificates gnupg
          curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
          sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ \
            $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

      - name: Install python
        uses: actions/setup-python@v6
        with:
          python-version: '3.x'

      - name: Install dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y \
            libboost-graph-dev \
            python3-sphinx \
            python3-sphinx-bootstrap-theme \
            postgresql-${PGVER} \
            postgresql-${PGVER}-postgis-${PGIS} \
            postgresql-${PGVER}-postgis-${PGIS}-scripts \
            postgresql-server-dev-${PGVER} \
            graphviz \
            doxygen

      - name: Configure and build documentation
        run: |
          export PATH=/usr/lib/postgresql/${PGVER}/bin:$PATH
          mkdir build
          cd build
          cmake -DPOSTGRESQL_VERSION=${PGVER} \
                -DDOC_USE_BOOTSTRAP=ON \
                -DCMAKE_BUILD_TYPE=Release ..
          make doc

      - name: Initialize mandatory git config
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "41898282+github-actions[bot]@users.noreply.github.com"


      - name: Update Users Documentation on develop
        if: ${{ github.ref == 'refs/heads/develop' }}
        run: |

          git checkout origin/gh-pages
          git checkout -b gh-pages
          DIRECTORY="${PROJECT_VERSION%.*}"
          rm -rf ${DIRECTORY}
          cp -r build/doc/_build/html ${DIRECTORY}
          git add ${DIRECTORY}
          git diff-index --quiet HEAD || git commit -m "Update users documentation for ${PROJECT_VERSION} for develop branch: commit ${{ env.GIT_HASH }}"
          git fetch origin
          git rebase origin/gh-pages
          git push origin gh-pages

        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Update Users Documentation on main
        if: ${{ github.ref == 'refs/heads/main' }}
        run: |

          git checkout origin/gh-pages
          git checkout -b gh-pages
          DIRECTORY="main"
          rm -rf ${DIRECTORY}
          cp -r build/doc/_build/html ${DIRECTORY}
          git add ${DIRECTORY}
          git diff-index --quiet HEAD || git commit -m "Update users documentation for ${PROJECT_VERSION} for main branch: commit ${{ env.GIT_HASH }}"
          git fetch origin
          git rebase origin/gh-pages
          git push origin gh-pages

        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}