Add scripts support version patch and restore support for all platforms #4965
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 20.x | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: Install dependencies | |
run: | | |
make config-yarn | |
yarn | |
yarn build:joi | |
yarn build:core | |
- 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: macos-latest | |
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: Set IS_TEST environment variable | |
run: | | |
echo "IS_TEST=true" >> $GITHUB_ENV | |
- 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: | | |
make test | |
env: | |
CSC_IDENTITY_AUTO_DISCOVERY: 'false' | |
test-on-macos-pr-target: | |
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: macos-latest | |
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: | | |
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: | | |
make test | |
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-latest | |
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 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: | | |
make test | |
test-on-windows-pr-target: | |
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: windows-latest | |
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: | | |
make test | |
test-on-ubuntu: | |
runs-on: ubuntu-latest | |
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" | |
make test | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: playwright-report | |
path: electron/playwright-report/ | |
retention-days: 2 | |
coverage-check: | |
runs-on: ubuntu-latest | |
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: Install yarn | |
run: npm install -g yarn | |
- 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" | |
make lint | |
yarn build:test | |
yarn test:coverage | |
- 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: ubuntu-latest | |
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" | |
make test |