Fix: Fix issue with duplicate events on Enter key press during CJK character composition in chat input #4672
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: Test - Linter & Playwright | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
- dev | |
paths: | |
- 'electron/**' | |
- .github/workflows/jan-electron-linter-and-test.yml | |
- 'web/**' | |
- 'joi/**' | |
- 'package.json' | |
- 'node_modules/**' | |
- 'yarn.lock' | |
- 'core/**' | |
- 'extensions/**' | |
- '!README.md' | |
- 'Makefile' | |
pull_request: | |
branches: | |
- main | |
- dev | |
- release/** | |
paths: | |
- 'electron/**' | |
- .github/workflows/jan-electron-linter-and-test.yml | |
- 'web/**' | |
- 'joi/**' | |
- 'package.json' | |
- 'node_modules/**' | |
- 'yarn.lock' | |
- 'Makefile' | |
- 'extensions/**' | |
- 'core/**' | |
- '!README.md' | |
jobs: | |
base_branch_cov: | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.base_ref }} | |
- name: Use Node.js v20.9.0 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: v20.9.0 | |
- name: Install dependencies | |
run: | | |
yarn | |
yarn build:core | |
yarn build:joi | |
- name: Run test coverage | |
run: yarn test:coverage | |
- name: Upload code coverage for ref branch | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ref-lcov.info | |
path: ./coverage/lcov.info | |
test-on-macos: | |
if: (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) || github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
runs-on: [self-hosted, macOS, macos-desktop] | |
steps: | |
- name: Getting the repo | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Installing node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: 'Cleanup cache' | |
continue-on-error: true | |
run: | | |
rm -rf ~/jan | |
make clean | |
- name: Get Commit Message for PR | |
if: github.event_name == 'pull_request' | |
run: | | |
echo "REPORT_PORTAL_DESCRIPTION=${{github.event.after}})" >> $GITHUB_ENV | |
- name: Get Commit Message for push event | |
if: github.event_name == 'push' | |
run: | | |
echo "REPORT_PORTAL_DESCRIPTION=${{github.sha}})" >> $GITHUB_ENV | |
- name: 'Config report portal' | |
run: | | |
make update-playwright-config REPORT_PORTAL_URL=${{ secrets.REPORT_PORTAL_URL }} REPORT_PORTAL_API_KEY=${{ secrets.REPORT_PORTAL_API_KEY }} REPORT_PORTAL_PROJECT_NAME=${{ secrets.REPORT_PORTAL_PROJECT_NAME }} REPORT_PORTAL_LAUNCH_NAME="Jan App macos" REPORT_PORTAL_DESCRIPTION="${{env.REPORT_PORTAL_DESCRIPTION}}" | |
- name: Linter and test | |
run: | | |
npm config set registry ${{ secrets.NPM_PROXY }} --global | |
yarn config set registry ${{ secrets.NPM_PROXY }} --global | |
make test | |
env: | |
CSC_IDENTITY_AUTO_DISCOVERY: 'false' | |
# TURBO_API: '${{ secrets.TURBO_API }}' | |
# TURBO_TEAM: 'macos' | |
# TURBO_TOKEN: '${{ secrets.TURBO_TOKEN }}' | |
test-on-macos-pr-target: | |
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: [self-hosted, macOS, macos-desktop] | |
steps: | |
- name: Getting the repo | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Installing node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: 'Cleanup cache' | |
continue-on-error: true | |
run: | | |
rm -rf ~/jan | |
make clean | |
- name: Linter and test | |
run: | | |
npm config set registry https://registry.npmjs.org --global | |
yarn config set registry https://registry.npmjs.org --global | |
make test | |
env: | |
CSC_IDENTITY_AUTO_DISCOVERY: 'false' | |
test-on-windows: | |
if: github.event_name == 'push' | |
strategy: | |
fail-fast: false | |
matrix: | |
antivirus-tools: ['mcafee', 'default-windows-security', 'bit-defender'] | |
runs-on: windows-desktop-${{ matrix.antivirus-tools }} | |
steps: | |
- name: Getting the repo | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Installing node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
# Clean cache, continue on error | |
- name: 'Cleanup cache' | |
shell: powershell | |
continue-on-error: true | |
run: | | |
$path = "$Env:APPDATA\jan" | |
if (Test-Path $path) { | |
Remove-Item "\\?\$path" -Recurse -Force | |
} else { | |
Write-Output "Folder does not exist." | |
} | |
make clean | |
- name: Get Commit Message for push event | |
if: github.event_name == 'push' | |
shell: bash | |
run: | | |
echo "REPORT_PORTAL_DESCRIPTION=${{github.sha}}" >> $GITHUB_ENV | |
- name: 'Config report portal' | |
shell: bash | |
run: | | |
make update-playwright-config REPORT_PORTAL_URL=${{ secrets.REPORT_PORTAL_URL }} REPORT_PORTAL_API_KEY=${{ secrets.REPORT_PORTAL_API_KEY }} REPORT_PORTAL_PROJECT_NAME=${{ secrets.REPORT_PORTAL_PROJECT_NAME }} REPORT_PORTAL_LAUNCH_NAME="Jan App Windows ${{ matrix.antivirus-tools }}" REPORT_PORTAL_DESCRIPTION="${{env.REPORT_PORTAL_DESCRIPTION}}" | |
- name: Linter and test | |
shell: powershell | |
run: | | |
npm config set registry ${{ secrets.NPM_PROXY }} --global | |
yarn config set registry ${{ secrets.NPM_PROXY }} --global | |
make test | |
# env: | |
# TURBO_API: '${{ secrets.TURBO_API }}' | |
# TURBO_TEAM: 'windows' | |
# TURBO_TOKEN: '${{ secrets.TURBO_TOKEN }}' | |
test-on-windows-pr: | |
if: (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) | |
runs-on: windows-desktop-default-windows-security | |
steps: | |
- name: Getting the repo | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Installing node | |
uses: actions/setup-node@v1 | |
with: | |
node-version: 20 | |
# Clean cache, continue on error | |
- name: 'Cleanup cache' | |
shell: powershell | |
continue-on-error: true | |
run: | | |
$path = "$Env:APPDATA\jan" | |
if (Test-Path $path) { | |
Remove-Item "\\?\$path" -Recurse -Force | |
} else { | |
Write-Output "Folder does not exist." | |
} | |
make clean | |
- name: Get Commit Message for PR | |
if: github.event_name == 'pull_request' | |
shell: bash | |
run: | | |
echo "REPORT_PORTAL_DESCRIPTION=${{github.event.after}}" >> $GITHUB_ENV | |
- name: 'Config report portal' | |
shell: bash | |
run: | | |
make update-playwright-config REPORT_PORTAL_URL=${{ secrets.REPORT_PORTAL_URL }} REPORT_PORTAL_API_KEY=${{ secrets.REPORT_PORTAL_API_KEY }} REPORT_PORTAL_PROJECT_NAME=${{ secrets.REPORT_PORTAL_PROJECT_NAME }} REPORT_PORTAL_LAUNCH_NAME="Jan App Windows" REPORT_PORTAL_DESCRIPTION="${{env.REPORT_PORTAL_DESCRIPTION}}" | |
- name: Linter and test | |
shell: powershell | |
run: | | |
npm config set registry ${{ secrets.NPM_PROXY }} --global | |
yarn config set registry ${{ secrets.NPM_PROXY }} --global | |
make test | |
# env: | |
# TURBO_API: '${{ secrets.TURBO_API }}' | |
# TURBO_TEAM: 'windows' | |
# TURBO_TOKEN: '${{ secrets.TURBO_TOKEN }}' | |
test-on-windows-pr-target: | |
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: windows-desktop-default-windows-security | |
steps: | |
- name: Getting the repo | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Installing node | |
uses: actions/setup-node@v1 | |
with: | |
node-version: 20 | |
# Clean cache, continue on error | |
- name: 'Cleanup cache' | |
shell: powershell | |
continue-on-error: true | |
run: | | |
$path = "$Env:APPDATA\jan" | |
if (Test-Path $path) { | |
Remove-Item "\\?\$path" -Recurse -Force | |
} else { | |
Write-Output "Folder does not exist." | |
} | |
make clean | |
- name: Linter and test | |
shell: powershell | |
run: | | |
npm config set registry https://registry.npmjs.org --global | |
yarn config set registry https://registry.npmjs.org --global | |
make test | |
test-on-ubuntu: | |
runs-on: [self-hosted, Linux, ubuntu-desktop] | |
if: (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) || github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
steps: | |
- name: Getting the repo | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Installing node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: 'Cleanup cache' | |
continue-on-error: true | |
run: | | |
rm -rf ~/jan | |
make clean | |
- name: Get Commit Message for PR | |
if: github.event_name == 'pull_request' | |
run: | | |
echo "REPORT_PORTAL_DESCRIPTION=${{github.event.after}}" >> $GITHUB_ENV | |
- name: Get Commit Message for push event | |
if: github.event_name == 'push' | |
run: | | |
echo "REPORT_PORTAL_DESCRIPTION=${{github.sha}}" >> $GITHUB_ENV | |
- name: 'Config report portal' | |
shell: bash | |
run: | | |
make update-playwright-config REPORT_PORTAL_URL=${{ secrets.REPORT_PORTAL_URL }} REPORT_PORTAL_API_KEY=${{ secrets.REPORT_PORTAL_API_KEY }} REPORT_PORTAL_PROJECT_NAME=${{ secrets.REPORT_PORTAL_PROJECT_NAME }} REPORT_PORTAL_LAUNCH_NAME="Jan App Linux" REPORT_PORTAL_DESCRIPTION="${{env.REPORT_PORTAL_DESCRIPTION}}" | |
- name: Linter and test | |
run: | | |
export DISPLAY=$(w -h | awk 'NR==1 {print $2}') | |
echo -e "Display ID: $DISPLAY" | |
npm config set registry ${{ secrets.NPM_PROXY }} --global | |
yarn config set registry ${{ secrets.NPM_PROXY }} --global | |
make test | |
# env: | |
# TURBO_API: '${{ secrets.TURBO_API }}' | |
# TURBO_TEAM: 'linux' | |
# TURBO_TOKEN: '${{ secrets.TURBO_TOKEN }}' | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: playwright-report | |
path: electron/playwright-report/ | |
retention-days: 2 | |
coverage-check: | |
runs-on: [self-hosted, Linux, ubuntu-desktop] | |
needs: base_branch_cov | |
if: (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) || github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
steps: | |
- name: Getting the repo | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Installing node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: 'Cleanup cache' | |
continue-on-error: true | |
run: | | |
rm -rf ~/jan | |
make clean | |
- name: Download code coverage report from base branch | |
uses: actions/download-artifact@v4 | |
with: | |
name: ref-lcov.info | |
- name: Linter and test coverage | |
run: | | |
export DISPLAY=$(w -h | awk 'NR==1 {print $2}') | |
echo -e "Display ID: $DISPLAY" | |
npm config set registry ${{ secrets.NPM_PROXY }} --global | |
yarn config set registry ${{ secrets.NPM_PROXY }} --global | |
make lint | |
yarn build:test | |
yarn test:coverage | |
# env: | |
# TURBO_API: '${{ secrets.TURBO_API }}' | |
# TURBO_TEAM: 'linux' | |
# TURBO_TOKEN: '${{ secrets.TURBO_TOKEN }}' | |
- name: Generate Code Coverage report | |
id: code-coverage | |
uses: barecheck/code-coverage-action@v1 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
lcov-file: './coverage/lcov.info' | |
base-lcov-file: './lcov.info' | |
send-summary-comment: true | |
show-annotations: 'warning' | |
test-on-ubuntu-pr-target: | |
runs-on: [self-hosted, Linux, ubuntu-desktop] | |
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository | |
steps: | |
- name: Getting the repo | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Installing node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: 'Cleanup cache' | |
continue-on-error: true | |
run: | | |
rm -rf ~/jan | |
make clean | |
- name: Linter and test | |
run: | | |
export DISPLAY=$(w -h | awk 'NR==1 {print $2}') | |
echo -e "Display ID: $DISPLAY" | |
npm config set registry https://registry.npmjs.org --global | |
yarn config set registry https://registry.npmjs.org --global | |
make test |