aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ext_depends/d2sqlite3/.github/workflows/documentation.yaml
blob: 97fa25e53e79e379953de565d2406caa6dccba7a (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
# Documentation build: Only runs on Linux
# Still need to install dependencies and the compiler because DDOX
# does a full build
name: Documentation
on: [push, pull_request]

jobs:
  doc:
    name: Build and upload documentation
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:

      # Checkout this repository and its submodules
      - name: Checkout repository
        uses: actions/checkout@v2

      # Install the D compiler
      - name: Prepare compiler
        uses: dlang-community/setup-dlang@v1
        with:
          compiler: ldc-latest

      - name: 'Install dependencies & setup environment'
        run: |
          sudo apt-get update
          sudo apt-get install libsqlite3-dev

      - name: Build documentation
        run: |
          dub build -b ddox
          # Generate the HTML to docs
          dub run ddox -- generate-html docs.json ./docs/

      - name: Upload documentation artifact
        uses: actions/upload-artifact@v2
        with:
          name: documentation
          path: docs/

      - name: Deploy documentation
        if: github.event_name == 'push'
        run: |
          # Remove gh-branch if it already exists, check it out
          git branch -D gh-pages || true
          git checkout --orphan gh-pages
          # Remove all staged files - We only need the docs
          git rm -rf $(git ls-files)
          # We can have some leftover files (e.g. build)
          # So add docs (which is only what we need), then `git mv` it.
          git add docs/
          git mv -k docs/* ./
          # Configure user (because persist-credentials does not persist everything...)
          git config --global user.name  "${{ github.actor }}"
          git config --global user.email "${{ github.actor }}@users.noreply.github.com"
          # We're done
          git commit -m "Documentation for commit ${{ github.sha }}"
          git push -f ${{ github.event.repository.clone_url }} gh-pages:gh-pages