| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- name: Publish
- on:
- push:
- tags: [ 'v**' ]
- jobs:
- publish:
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ macos-latest, ubuntu-latest, windows-latest ]
- steps:
- - name: Check out Git repository
- uses: actions/checkout@v1
- - name: Git credentials
- run: |
- git config --global user.name ${{ secrets.PUBLISH_USER_NAME }}
- git config --global user.email ${{ secrets.PUBLISH_USER_EMAIL }}
- - name: Install Node.js
- uses: actions/setup-node@v1
- with:
- node-version: 16
- - if: startsWith(matrix.os, 'ubuntu')
- name: Install Python
- uses: actions/setup-python@v2
- with:
- python-version: 3.9
- - name: Install npm packages
- run: make install
- - name: ESLint
- run: make lint
- - name: Publish Electron
- shell: bash
- env:
- GITHUB_TOKEN: ${{ secrets.PUBLISH_GITHUB_TOKEN }}
- API_KEY_ID: ${{ secrets.API_KEY_ID }}
- API_KEY_ISSUER_ID: ${{ secrets.API_KEY_ISSUER_ID }}
- CSC_LINK: ${{ secrets.CSC_LINK }}
- CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
- WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
- WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
- run: |
- case "${{ matrix.os }}" in
- macos*)
- mkdir -p ~/.private_keys
- echo '${{ secrets.API_KEY }}' > ~/.private_keys/AuthKey_${{ secrets.API_KEY_ID }}.p8
- npx electron-builder --mac --universal --publish always
- ;;
- ubuntu*)
- sudo snap install snapcraft --classic
- mkdir -p ~/.private_keys
- echo '${{ secrets.SNAPCRAFT_TOKEN }}' > ~/.private_keys/snapcraft_token.txt
- snapcraft login --with ~/.private_keys/snapcraft_token.txt
- npx electron-builder --linux appimage --x64 --publish always
- npx electron-builder --linux snap --x64 --publish always
- ;;
- windows*)
- unset CSC_LINK;
- unset CSC_KEY_PASSWORD;
- npx electron-builder --win --x64 --arm64 --publish always
- ;;
- esac
- - if: startsWith(matrix.os, 'ubuntu')
- name: Publish Python
- env:
- TWINE_USERNAME: __token__
- TWINE_PASSWORD: ${{ secrets.pypi_api_token }}
- run: make publish_python
- - if: startsWith(matrix.os, 'ubuntu')
- name: Publish Web
- env:
- GITHUB_TOKEN: ${{ secrets.PUBLISH_GITHUB_TOKEN }}
- GITHUB_USER: ${{ secrets.PUBLISH_GITHUB_USER }}
- run: make publish_web
- - if: startsWith(matrix.os, 'macos')
- name: Publish cask
- env:
- GITHUB_TOKEN: ${{ secrets.PUBLISH_GITHUB_TOKEN }}
- GITHUB_USER: ${{ secrets.PUBLISH_GITHUB_USER }}
- run: make publish_cask
- - if: startsWith(matrix.os, 'windows')
- name: Publish winget
- env:
- GITHUB_TOKEN: ${{ secrets.PUBLISH_GITHUB_TOKEN }}
- GITHUB_USER: ${{ secrets.PUBLISH_GITHUB_USER }}
- run: make publish_winget
|