compile_docs.yml 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. name: Build docs
  2. on:
  3. push:
  4. branches:
  5. - master
  6. - 'release/*'
  7. env:
  8. EM_VERSION: 2.0.4
  9. EM_CACHE_FOLDER: 'emsdk-cache'
  10. jobs:
  11. build-and-deploy:
  12. if: github.repository == 'lvgl/lvgl'
  13. runs-on: ubuntu-latest
  14. concurrency: docs-build-and-deploy
  15. steps:
  16. - name: Checkout
  17. uses: actions/checkout@v2
  18. with:
  19. persist-credentials: false
  20. fetch-depth: 0
  21. - name: Setup Python
  22. uses: actions/setup-python@v1
  23. with:
  24. python-version: 3.7
  25. - name: Cache Python packages
  26. uses: actions/cache@v2
  27. with:
  28. # Cache the Python package environment, excluding pip and setuptools installed by setup-python
  29. path: |
  30. ~/.cache/pip
  31. ${{ env.pythonLocation }}/bin/*
  32. ${{ env.pythonLocation }}/include
  33. ${{ env.pythonLocation }}/lib/python*/site-packages/*
  34. !${{ env.pythonLocation }}/bin/pip*
  35. !${{ env.pythonLocation }}/lib/python*/site-packages/pip*
  36. !${{ env.pythonLocation }}/lib/python*/site-packages/setuptools*
  37. key: ${{ env.pythonLocation }}-${{ hashFiles('docs/requirements.txt') }}
  38. - name: Install Doxygen and Latex dependencies
  39. run: |
  40. sudo apt-get update
  41. sudo apt-get install doxygen texlive-xetex texlive-binaries texlive-lang-english latexmk fonts-freefont-otf
  42. - name: Install requirements
  43. run: |
  44. pip install -r docs/requirements.txt
  45. - name: Setup Emscripten cache
  46. id: cache-system-libraries
  47. uses: actions/cache@v2
  48. with:
  49. path: ${{env.EM_CACHE_FOLDER}}
  50. key: ${{env.EM_VERSION}}-${{ runner.os }}
  51. - uses: mymindstorm/setup-emsdk@v9
  52. with:
  53. version: ${{env.EM_VERSION}}
  54. actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
  55. - name: ccache
  56. uses: hendrikmuhs/ccache-action@v1
  57. - name: Build examples (with cache)
  58. run: scripts/build_html_examples.sh
  59. - name: Build docs
  60. run: docs/build.py
  61. - name: Remove .doctrees
  62. run: rm -rf out_html/.doctrees
  63. - name: Retrieve version
  64. run: |
  65. echo "::set-output name=VERSION_NAME::$(scripts/find_version.sh)"
  66. id: version
  67. - name: Deploy to subfolder
  68. uses: JamesIves/github-pages-deploy-action@3.7.1
  69. with:
  70. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  71. ACCESS_TOKEN: ${{ secrets.LVGL_BOT_TOKEN }}
  72. REPOSITORY_NAME: lvgl/docs
  73. BRANCH: gh-pages # The branch the action should deploy to.
  74. FOLDER: out_html # The folder the action should deploy.
  75. TARGET_FOLDER: ${{ steps.version.outputs.VERSION_NAME }}
  76. GIT_CONFIG_NAME: lvgl-bot
  77. GIT_CONFIG_EMAIL: lvgl-bot@users.noreply.github.com
  78. PRESERVE: true
  79. SINGLE_COMMIT: true
  80. - name: Deploy to master
  81. if: github.ref == 'refs/heads/master'
  82. uses: JamesIves/github-pages-deploy-action@3.7.1
  83. with:
  84. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  85. ACCESS_TOKEN: ${{ secrets.LVGL_BOT_TOKEN }}
  86. REPOSITORY_NAME: lvgl/docs
  87. BRANCH: gh-pages # The branch the action should deploy to.
  88. FOLDER: out_html # The folder the action should deploy.
  89. TARGET_FOLDER: master
  90. GIT_CONFIG_NAME: lvgl-bot
  91. GIT_CONFIG_EMAIL: lvgl-bot@users.noreply.github.com
  92. PRESERVE: true
  93. SINGLE_COMMIT: true