publish.yml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. name: Publish
  2. on:
  3. push:
  4. tags: [ 'v**' ]
  5. jobs:
  6. publish:
  7. runs-on: ${{ matrix.os }}
  8. strategy:
  9. matrix:
  10. os: [ macos-latest, ubuntu-latest, windows-latest ]
  11. steps:
  12. - name: Check out Git repository
  13. uses: actions/checkout@v4
  14. - name: Git credentials
  15. run: |
  16. git config --global user.name ${{ secrets.PUBLISH_GITHUB_USER_NAME }}
  17. git config --global user.email ${{ secrets.PUBLISH_GITHUB_USER_EMAIL }}
  18. - name: Install Node.js
  19. uses: actions/setup-node@v4
  20. with:
  21. node-version: latest
  22. - name: Install Python
  23. uses: actions/setup-python@v5
  24. with:
  25. python-version: 3.x
  26. - name: Install Packages
  27. run: npm run install
  28. - name: Publish Electron
  29. shell: bash
  30. env:
  31. GITHUB_TOKEN: ${{ secrets.PUBLISH_GITHUB_TOKEN }}
  32. APPLE_API_KEY: ~/.private_keys/AuthKey_${{ secrets.APPLE_API_KEY_ID }}.p8
  33. APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
  34. APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
  35. CSC_LINK: ${{ secrets.CSC_LINK }}
  36. CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
  37. AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
  38. AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
  39. AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
  40. run: |
  41. npx electron-builder install-app-deps
  42. case "${{ matrix.os }}" in
  43. macos*)
  44. mkdir -p ~/.private_keys
  45. echo '${{ secrets.APPLE_API_KEY }}' > ~/.private_keys/AuthKey_${{ secrets.APPLE_API_KEY_ID }}.p8
  46. npm run publish electron mac
  47. ;;
  48. ubuntu*)
  49. sudo apt-get install rpm --yes
  50. npm run publish electron linux
  51. ;;
  52. windows*)
  53. unset CSC_LINK;
  54. unset CSC_KEY_PASSWORD;
  55. npm run publish electron windows
  56. ;;
  57. esac
  58. - if: startsWith(matrix.os, 'ubuntu')
  59. name: Publish Python
  60. env:
  61. TWINE_USERNAME: __token__
  62. TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
  63. run: npm run publish python
  64. - if: startsWith(matrix.os, 'ubuntu')
  65. name: Publish Web
  66. env:
  67. GITHUB_TOKEN: ${{ secrets.PUBLISH_GITHUB_TOKEN }}
  68. GITHUB_USER: ${{ secrets.PUBLISH_GITHUB_USER }}
  69. run: git push origin HEAD:release --force
  70. - if: false # startsWith(matrix.os, 'macos')
  71. name: Publish cask
  72. env:
  73. GITHUB_TOKEN: ${{ secrets.PUBLISH_GITHUB_TOKEN }}
  74. GITHUB_USER: ${{ secrets.PUBLISH_GITHUB_USER }}
  75. run: npm run publish cask
  76. - if: startsWith(matrix.os, 'windows')
  77. name: Publish winget
  78. env:
  79. GITHUB_USER: ${{ secrets.PUBLISH_GITHUB_USER }}
  80. GITHUB_TOKEN: ${{ secrets.PUBLISH_GITHUB_TOKEN }}
  81. WINGET_TOKEN: ${{ secrets.WINGET_TOKEN }}
  82. run: npm run publish winget