summaryrefslogtreecommitdiffstats
path: root/.github/workflows/gh-pages.yml
blob: 0ebe358c4caa2f0ca840b04a92ee536cf559f25d (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
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
name: Deploy to GitHub Pages

on:
  push:
    branches:
      - main
      - release/*
      - "docs/*"
  pull_request:
    types: [opened, synchronize, reopened, closed]
    branches:
      - main
      - "docs/*"

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  generate:
    name: Generate and Deploy documentation
    if: >
      github.event_name == 'push' ||
      (github.event_name == 'pull_request' &&
      startsWith(github.head_ref, 'docs/'))
    runs-on: ubuntu-latest
    steps:
      - name: Git checkout
        uses: actions/checkout@v3 # actions/checkout v3.0.2

      - name: Setup Python 3.9
        uses: actions/setup-python@v4
        with:
          python-version: "3.9"
          architecture: x64

      - name: Install Poetry
        uses: snok/install-poetry@v1
        with:
          version: 1.8.1
          virtualenvs-create: true
          virtualenvs-in-project: true

      - name: Setup sudo apt installs for ubuntu-latest
        run: |
          sudo apt-get update
          sudo apt-get install -y \
              libgtk-3-dev \
              libwebkit2gtk-4.0-dev

      - name: Install dependencies
        run: poetry install --no-interaction --no-root

      - name: Install packages
        run: poetry install --no-interaction -E forecast -E doc -E optimization

      - name: Generate SDK v3 Markdown
        run: |
          source .venv/bin/activate
          pip uninstall Brotli -y
          pytest tests/website --autodoc
          poetry run python website/generate_sdk_v3_markdown.py
          poetry run python website/generate_terminal_v3_markdown.py

      - name: Generate Platform Markdown
        run: |
          source .venv/bin/activate
          pip install -U poetry
          poetry run python openbb_platform/dev_install.py -e all
          pip uninstall nbmake -y
          poetry run python website/generate_platform_v4_markdown.py

      - name: Generate Excel Docs
        run: |
          source .venv/bin/activate
          poetry run python website/generate_excel_markdown.py

      - name: Generate Widgets Library
        run: |
          source .venv/bin/activate
          poetry run python website/generate_widgets_library.py

      - name: Setup Node
        uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: yarn
          cache-dependency-path: website/yarn.lock

      - name: Install dependencies
        run: yarn install
        working-directory: website

      - name: Build website
        run: yarn build
        working-directory: website

      # Popular action to deploy to GitHub Pages:
      # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        if: >
          (startsWith(github.ref, 'refs/heads/main')) ||
          (github.event_name == 'pull_request' &&
          github.event.pull_request.merged == true &&
          github.event.pull_request.base.ref == 'main' &&
          startsWith(github.head_ref, 'docs/'))
        with:
          github_token: ${{ secrets.DEPLOY_TOKEN }}
          publish_dir: ./website/build
          # The following lines assign commit authorship to the official
          # GH-Actions bot for deploys to `gh-pages` branch:
          # https://github.com/actions/checkout/issues/13#issuecomment-724415212
          # The GH actions bot is used by default if you didn't specify the two fields.
          # You can swap them out with your own user credentials.
          user_name: github-actions[bot]
          user_email: 41898282+github-actions[bot]@users.noreply.github.com