Update react #499
Workflow file for this run
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-15, 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 }} | |
- name: Install pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: latest | |
run_install: false | |
- 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: | | |
pnpm dlx @sentry/cli releases set-commits "${{ env.PACKAGE_VERSION }}" --commit "${{ github.repository }}@${{ github.sha }}" | |
pnpm dlx @sentry/cli releases new "${{ env.PACKAGE_VERSION }}" | |
- name: Install Dependencies (Electron) | |
shell: bash | |
run: | | |
cd electron | |
if [ "${{ matrix.os }}" = "macos-15" ]; then | |
export npm_config_arch=x64 | |
elif [ "${{ matrix.os }}" = "macos-latest" ]; then | |
export npm_config_arch=arm64 | |
fi | |
pnpm install --no-frozen-lockfile | |
cd .. | |
- name: Install Dependencies (Client) | |
run: | | |
cd client | |
pnpm install --no-frozen-lockfile | |
cd .. | |
- name: Build Client | |
run: | | |
cd client | |
pnpm 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 | |
shell: bash | |
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 | |
pnpm build | |
pnpm prepare_client | |
# Determine the architecture to build | |
if [ "${{ matrix.os }}" = "macos-15" ]; then | |
ARCH="x64" | |
elif [ "${{ matrix.os }}" = "macos-latest" ]; then | |
ARCH="arm64" | |
fi | |
pnpm release -- --mac --${ARCH} | |
cd .. | |
- name: Upload Sentry Sourcemaps | |
if: matrix.os == 'ubuntu-latest' | |
env: | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} | |
run: | | |
pnpm dlx @sentry/cli releases files "${{ env.PACKAGE_VERSION }}" upload-sourcemaps ./client/dist/assets/ --rewrite --url-prefix "~/dist/assets" | |
pnpm dlx @sentry/cli releases files "${{ env.PACKAGE_VERSION }}" list | |
pnpm 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 |