add yarn to project root #461
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: Install Sentry CLI | |
run: yarn global add @sentry/cli | |
- 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: | | |
sentry-cli releases set-commits "${{ env.PACKAGE_VERSION }}" --commit "${{ github.repository }}@${{ github.sha }}" | |
sentry-cli releases new "${{ env.PACKAGE_VERSION }}" | |
- name: Install Dependencies (Electron) | |
run: | | |
cd electron | |
yarn install --ignore-optional | |
cd .. | |
- name: Install Dependencies (Client) | |
run: | | |
cd client | |
yarn install --ignore-optional | |
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: | | |
sentry-cli releases files "${{ env.PACKAGE_VERSION }}" upload-sourcemaps ./client/build/static/js/ --rewrite --url-prefix "~/dist/static/js" | |
sentry-cli releases files "${{ env.PACKAGE_VERSION }}" list | |
sentry-cli releases finalize "${{ env.PACKAGE_VERSION }}" | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.os }}-build | |
path: | | |
electron/dist/*.dmg | |
electron/dist/*.AppImage | |
electron/dist/*.deb | |
electron/dist/*.rpm | |
electron/dist/*.exe | |
electron/dist/*.msi |