]> git.ipfire.org Git - thirdparty/pdns.git/blob - .github/workflows/documentation.yml
cb6828ec59f5626671845719a08c67756eb978d9
[thirdparty/pdns.git] / .github / workflows / documentation.yml
1 ---
2 name: 'Documentation'
3
4 on:
5 push:
6 branches: [master]
7 pull_request:
8 branches: [master]
9
10 permissions:
11 contents: read
12
13 jobs:
14 build-upload-docs:
15 name: Build and upload docs
16 runs-on: ubuntu-22.04
17 steps:
18 - uses: PowerDNS/pdns/set-ubuntu-mirror@meta
19 - uses: actions/checkout@v4
20 - run: build-scripts/gh-actions-setup-inv-no-dist-upgrade # this runs apt update
21 - run: inv install-doc-deps
22 - run: inv install-doc-deps-pdf
23
24 - id: get-version
25 run: |
26 echo "pdns_version=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
27
28 - id: setup-ssh
29 run: |-
30 inv ci-docs-add-ssh --ssh-key="$SSH_KEY" --host-key="$HOST_KEY"
31 echo "have_ssh_key=yes" >> $GITHUB_OUTPUT
32 env:
33 SSH_KEY: ${{secrets.WEB1_DOCS_SECRET}}
34 HOST_KEY: ${{vars.WEB1_HOSTKEY}}
35 if: ${{github.ref_name == 'master' && env.SSH_KEY != ''}}
36
37 # Auth
38 - run: inv ci-docs-build
39 - run: mv html auth-html-docs
40 working-directory: ./docs/_build
41 - run: tar cf auth-html-docs.tar auth-html-docs
42 working-directory: ./docs/_build
43 - uses: actions/upload-artifact@v4
44 with:
45 name: authoritative-html-docs-${{steps.get-version.outputs.pdns_version}}
46 path: ./docs/_build/auth-html-docs.tar
47 - run: bzip2 auth-html-docs.tar
48 if: ${{github.ref_name == 'master'}}
49 working-directory: ./docs/_build
50 - run: inv ci-docs-build-pdf
51 - uses: actions/upload-artifact@v4
52 with:
53 name: PowerDNS-Authoritative-${{steps.get-version.outputs.pdns_version}}.pdf
54 path: ./docs/_build/latex/PowerDNS-Authoritative.pdf
55 - run: inv ci-docs-upload-master --docs-host="${DOCS_HOST}" --pdf="PowerDNS-Authoritative.pdf" --username="docs_powerdns_com" --product="auth" --directory="/${AUTH_DOCS_DIR}/"
56 env:
57 DOCS_HOST: ${{vars.DOCS_HOST}}
58 AUTH_DOCS_DIR: ${{vars.AUTH_DOCS_DIR}}
59 if: ${{github.ref_name == 'master' && steps.setup-ssh.outputs.have_ssh_key != ''}}
60
61 # Rec
62 - run: inv ci-docs-rec-generate
63 working-directory: ./pdns/recursordist/settings
64 - run: inv ci-docs-build
65 working-directory: ./pdns/recursordist
66 - run: mv html rec-html-docs
67 working-directory: ./pdns/recursordist/docs/_build
68 - run: tar cf rec-html-docs.tar rec-html-docs
69 working-directory: ./pdns/recursordist/docs/_build
70 - uses: actions/upload-artifact@v4
71 with:
72 name: recursor-html-docs-${{steps.get-version.outputs.pdns_version}}
73 path: ./pdns/recursordist/docs/_build/rec-html-docs.tar
74 - run: bzip2 rec-html-docs.tar
75 if: ${{github.ref_name == 'master'}}
76 working-directory: ./pdns/recursordist/docs/_build
77 - run: inv ci-docs-build-pdf
78 working-directory: ./pdns/recursordist
79 - uses: actions/upload-artifact@v4
80 with:
81 name: PowerDNS-Recursor-${{steps.get-version.outputs.pdns_version}}.pdf
82 path: ./pdns/recursordist/docs/_build/latex/PowerDNS-Recursor.pdf
83 - run: inv ci-docs-upload-master --docs-host="${DOCS_HOST}" --pdf="PowerDNS-Recursor.pdf" --username="docs_powerdns_com" --product="rec" --directory="/${REC_DOCS_DIR}/"
84 env:
85 DOCS_HOST: ${{vars.DOCS_HOST}}
86 REC_DOCS_DIR: ${{vars.REC_DOCS_DIR}}
87 if: ${{github.ref_name == 'master' && steps.setup-ssh.outputs.have_ssh_key != ''}}
88 working-directory: ./pdns/recursordist
89
90 # DNSdist
91 - run: inv ci-docs-build
92 working-directory: ./pdns/dnsdistdist
93 - run: mv html dnsdist-html-docs
94 working-directory: ./pdns/dnsdistdist/docs/_build
95 - run: tar cf dnsdist-html-docs.tar dnsdist-html-docs
96 working-directory: ./pdns/dnsdistdist/docs/_build
97 - uses: actions/upload-artifact@v4
98 with:
99 name: dnsdist-html-docs-${{steps.get-version.outputs.pdns_version}}
100 path: ./pdns/dnsdistdist/docs/_build/dnsdist-html-docs.tar
101 - run: bzip2 dnsdist-html-docs.tar
102 if: ${{github.ref_name == 'master'}}
103 working-directory: ./pdns/dnsdistdist/docs/_build
104 - run: inv ci-docs-build-pdf
105 working-directory: ./pdns/dnsdistdist
106 - uses: actions/upload-artifact@v4
107 with:
108 name: dnsdist-${{steps.get-version.outputs.pdns_version}}.pdf
109 path: ./pdns/dnsdistdist/docs/_build/latex/dnsdist.pdf
110 - run: inv ci-docs-upload-master --docs-host="${DOCS_HOST}" --pdf="dnsdist.pdf" --username="dnsdist_org" --product="dnsdist"
111 env:
112 DOCS_HOST: ${{vars.DOCS_HOST}}
113 if: ${{github.ref_name == 'master' && steps.setup-ssh.outputs.have_ssh_key != ''}}
114 working-directory: ./pdns/dnsdistdist