Test - Linter & Playwright #4662
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: 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: | | |
yarn config set install.prefer-offline true | |
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: Linter and test | |
run: | | |
yarn config set install.prefer-offline true | |
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 | |
- 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: | | |
yarn config set install.prefer-offline true | |
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) || github.event_name == 'workflow_dispatch' | |
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@v3 | |
with: | |
node-version: 20 | |
- 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: | | |
yarn config set install.prefer-offline true | |
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 | |
- name: Linter and test | |
shell: powershell | |
run: | | |
yarn config set install.prefer-offline true | |
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: 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: 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" | |
yarn config set install.prefer-offline true | |
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: Linter and test | |
run: | | |
export DISPLAY=$(w -h | awk 'NR==1 {print $2}') | |
echo -e "Display ID: $DISPLAY" | |
yarn config set install.prefer-offline true | |
npm config set registry https://registry.npmjs.org --global | |
yarn config set registry https://registry.npmjs.org --global | |
make test |