Merge pull request #293 from kwongtn/master #470
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
types: [opened, synchronize, reopened] | |
jobs: | |
sonarcloud: | |
name: SonarCloud | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: SonarCloud Scan Electron | |
uses: SonarSource/sonarcloud-github-action@master | |
with: | |
projectBaseDir: electron | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
- name: SonarCloud Scan Client | |
uses: SonarSource/sonarcloud-github-action@master | |
with: | |
projectBaseDir: client | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
build: | |
name: Build (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
node-version: [22.x] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'yarn' | |
- name: Install Yarn Berry | |
run: corepack enable && corepack prepare yarn@stable --activate | |
- name: Get Package Version | |
id: package_version | |
shell: bash | |
run: echo "PACKAGE_VERSION=$(node -p -e "require('./electron/package.json').version")" >> $GITHUB_ENV | |
- name: Setup Sentry Release | |
if: matrix.os == 'ubuntu-latest' | |
env: | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} | |
run: | | |
yarn dlx @sentry/cli releases set-commits "${{ env.PACKAGE_VERSION }}" --commit "${{ github.repository }}@${{ github.sha }}" | |
yarn dlx @sentry/cli releases new "${{ env.PACKAGE_VERSION }}" | |
- name: Install Dependencies (Electron) | |
run: | | |
cd electron | |
yarn install | |
cd .. | |
- name: Install Dependencies (Client) | |
run: | | |
cd client | |
yarn install | |
cd .. | |
- name: Build Client | |
run: | | |
cd client | |
yarn build | |
cd .. | |
- name: Create .env file | |
shell: bash | |
run: | | |
cd electron | |
echo "SENTRY_DSN=${{ secrets.SENTRY_DSN }}" >> .env | |
echo "APPLE_ID=${{ secrets.APPLE_ID }}" >> .env | |
echo "APPLE_ID_PASSWORD=${{ secrets.APPLE_ID_PASSWORD }}" >> .env | |
echo "APPLE_TEAM_ID=${{ secrets.APPLE_TEAM_ID }}" >> .env | |
cd .. | |
- name: Build and Release Electron App | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
DEBUG: electron-builder,electron-builder:* | |
CSC_LINK: ${{ secrets.CSC_LINK }} | |
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} | |
APPLE_ID: ${{ secrets.APPLE_ID }} | |
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
CSC_IDENTITY_AUTO_DISCOVERY: ${{ matrix.os != 'windows-latest' }} | |
run: | | |
cd electron | |
yarn build | |
yarn prepare_client | |
yarn release | |
cd .. | |
- name: Upload Sentry Sourcemaps | |
if: matrix.os == 'ubuntu-latest' | |
env: | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} | |
run: | | |
yarn dlx @sentry/cli releases files "${{ env.PACKAGE_VERSION }}" upload-sourcemaps ./client/build/static/js/ --rewrite --url-prefix "~/dist/static/js" | |
yarn dlx @sentry/cli releases files "${{ env.PACKAGE_VERSION }}" list | |
yarn dlx @sentry/cli releases finalize "${{ env.PACKAGE_VERSION }}" | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.os }}-build | |
path: | | |
electron/packaged/*.dmg | |
electron/packaged/*.AppImage | |
electron/packaged/*.deb | |
electron/packaged/*.rpm | |
electron/packaged/*.exe | |
electron/packaged/*.msi |