# Copyright 2025 Signal Messenger, LLC # SPDX-License-Identifier: AGPL-3.0-only name: ICU Book on: workflow_dispatch: push: tags: - 'v[0-9]+.[0-9]+.*' jobs: build-icu-book: name: Build ICU Book runs-on: ubuntu-latest-8-cores if: ${{ github.repository == 'signalapp/Signal-Desktop-Private' }} timeout-minutes: 30 steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 - name: Setup pnpm uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - name: Setup node.js uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 with: node-version-file: '.nvmrc' cache: 'pnpm' cache-dependency-path: 'pnpm-lock.yaml' - name: Cache .electron-gyp uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.electron-gyp key: electron-gyp-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} # - name: Setup sccache # uses: mozilla-actions/sccache-action@054db53350805f83040bf3e6e9b8cf5a139aa7c9 # v0.0.7 # - name: Restore sccache # uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 # id: cache-sccache # with: # path: ${{ env.SCCACHE_PATH }} # key: sccache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**') }} - name: Install Desktop node_modules run: pnpm install env: # CC: sccache gcc # CXX: sccache g++ # SCCACHE_GHA_ENABLED: "true" NPM_CONFIG_LOGLEVEL: verbose - run: pnpm run build:storybook - run: ./node_modules/.bin/playwright install chromium - run: ./node_modules/.bin/run-p --race test:storybook:serve test:storybook:test env: ARTIFACTS_DIR: stories - run: pnpm run build:esbuild - run: node ts/scripts/compile-stories-icu-lookup.node.js stories - name: Upload test artifacts if: github.event_name == 'workflow_dispatch' uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: desktop-test-icu path: stories compression-level: 9 - name: Upload release artifacts if: github.event_name != 'workflow_dispatch' uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: desktop-${{ github.ref_name }}-icu path: stories compression-level: 9