summaryrefslogtreecommitdiff
path: root/.github/workflows/docs.yml
blob: 74f5e9d6c9dfe664c01c14fbe1a962cc6a30dea6 (plain)
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
---
name: Docs

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

permissions:
  # This workflow pushes to the gh-pages branch, so the token needs write
  # privileges for repo contents.
  contents: write

jobs:
  docs:
    name: Build documentation
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      # This is taken from ci/travis-install.sh but should probably be
      # refactored.
      - name: Install dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y \
            attr \
            bison \
            cpio \
            debhelper \
            dh-autoreconf \
            dh-systemd \
            docbook-xml \
            docbook-xsl \
            e2fslibs-dev \
            elfutils \
            fuse \
            gjs \
            gnome-desktop-testing \
            gobject-introspection \
            gtk-doc-tools \
            libarchive-dev \
            libattr1-dev \
            libcap-dev \
            libfuse-dev \
            libgirepository1.0-dev \
            libglib2.0-dev \
            libgpgme11-dev \
            liblzma-dev \
            libmount-dev \
            libselinux1-dev \
            libsoup2.4-dev \
            libcurl4-openssl-dev \
            procps \
            zlib1g-dev \
            python3-yaml

      - name: Build API docs
        run: |
          ./autogen.sh --enable-gtk-doc
          make -C apidoc

      - name: Build and publish jekyll docs
        uses: helaili/jekyll-action@v2
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          jekyll_src: docs
          target_branch: gh-pages
          # Only publish when pushing to main.
          # XXX: Maybe this should only run on the release event?
          build_only: ${{ github.ref == 'refs/heads/main' && 'false' || 'true' }}
          # Run the prep script to put the API docs in place.
          pre_build_commands: ./docs/prep-docs.sh