docs.yml 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. name: Generate Docs
  2. permissions:
  3. contents: write
  4. on:
  5. push:
  6. branches:
  7. - master
  8. - vitepress
  9. paths:
  10. - 'builddefs/docsgen/**'
  11. - 'tmk_core/**'
  12. - 'quantum/**'
  13. - 'platforms/**'
  14. - 'docs/**'
  15. - '.github/workflows/docs.yml'
  16. defaults:
  17. run:
  18. shell: bash
  19. jobs:
  20. generate:
  21. runs-on: ubuntu-latest
  22. container: ghcr.io/qmk/qmk_cli
  23. # protect against those who develop with their fork on master
  24. if: github.repository == 'qmk/qmk_firmware' || (github.repository == 'tzarc/qmk_firmware' && github.ref == 'refs/heads/vitepress')
  25. steps:
  26. - uses: actions/checkout@v4
  27. with:
  28. fetch-depth: 1
  29. - name: Install dependencies
  30. run: |
  31. apt-get update && apt-get install -y rsync doxygen curl
  32. # install nvm
  33. touch $HOME/.bashrc
  34. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
  35. - name: Install node
  36. run: |
  37. source $HOME/.bashrc
  38. nvm install 20
  39. nvm use 20
  40. corepack enable
  41. npm install -g moxygen
  42. - name: Build docs
  43. run: |
  44. source $HOME/.bashrc
  45. nvm use 20
  46. qmk --verbose generate-docs
  47. touch '.build/docs/.nojekyll'
  48. - name: Set CNAME
  49. if: github.repository == 'qmk/qmk_firmware'
  50. run: |
  51. # Override target CNAME
  52. echo 'docs.qmk.fm' > .build/docs/CNAME
  53. - name: Override CNAME
  54. if: github.repository == 'tzarc/qmk_firmware'
  55. run: |
  56. # Temporarily override target CNAME during development
  57. echo 'vitepress.qmk.fm' > .build/docs/CNAME
  58. - name: Deploy
  59. if: github.repository == 'qmk/qmk_firmware'
  60. uses: JamesIves/github-pages-deploy-action@v4.6.1
  61. with:
  62. token: ${{ secrets.GITHUB_TOKEN }}
  63. branch: gh-pages
  64. folder: .build/docs
  65. git-config-name: QMK Bot
  66. git-config-email: hello@qmk.fm
  67. - name: Deploy
  68. if: github.repository == 'tzarc/qmk_firmware'
  69. uses: JamesIves/github-pages-deploy-action@v4.6.1
  70. with:
  71. branch: gh-pages
  72. folder: .build/docs