Skip to content

chore(ci): update pipelines (#1082) #3863

chore(ci): update pipelines (#1082)

chore(ci): update pipelines (#1082) #3863

Workflow file for this run

name: tests
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
pull-requests: read
env:
PNPM_VERSION: 9.15.9+sha256.cf86a7ad764406395d4286a6d09d730711720acc6d93e9dce9ac7ac4dc4a28a7
jobs:
dependency-check:
name: 🔎 📦 Dependency Check
runs-on: ubuntu-latest
outputs:
run_unit_tests: ${{ steps.set-vars.outputs.run_unit_tests }}
run_web_tests: ${{ steps.set-vars.outputs.run_web_tests }}
steps:
- name: 🧐 Determine Job to Run
id: set-vars
run: |
PR_TITLE="${{ github.event.pull_request.title }}"
UNIT_TEST_REGEX='(@typescript-eslint|vitest|eslint|@types|@tsconfig|ts-node|jsdom|typescript)'
WEB_TEST_REGEX='(@wdio(?!\/appium-service)|copyfiles|rimraf|saucelabs|lambdatest|webdriverio)'
if [[ $PR_TITLE =~ $UNIT_TEST_REGEX ]]; then
echo "::set-output name=run_unit_tests::true"
fi
if [[ $PR_TITLE =~ $WEB_TEST_REGEX ]]; then
echo "::set-output name=run_web_tests::true"
fi
ci-dependency-unit-test:
name: 🧪 CI Dependency Update Run Unit Tests
needs: dependency-check
if: needs.dependency-check.outputs.run_unit_tests == 'true'
runs-on: ubuntu-latest
steps:
- name: ⬇️ Checkout Repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: 📦 Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
with:
version: ${{ env.PNPM_VERSION }}
- name: 🟢 Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version-file: ".nvmrc"
cache: pnpm
- name: 🧩 Install Dependencies
run: pnpm pnpm.install.workaround
- name: 🏗️ Build
working-directory: ./
run: pnpm build
- name: 🧪 Run linting and unit tests
run: pnpm test
ci-dependency-web:
name: 🌐 CI Dependency Update Run Desktop Web Tests on LambdaTest
needs: dependency-check
if: needs.dependency-check.outputs.run_web_tests == 'true'
runs-on: ubuntu-latest
steps:
- name: ⬇️ Checkout Repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: 📦 Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
with:
version: ${{ env.PNPM_VERSION }}
- name: 🟢 Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version-file: ".nvmrc"
cache: pnpm
- name: 🧩 Install Dependencies
run: pnpm pnpm.install.workaround
- name: 🏗️ Build
working-directory: ./
run: pnpm build
- name: 🧪 Run linting and unit tests
working-directory: ./
run: pnpm test
- name: 🖥️ 🌐 Run Desktop Web e2e tests
working-directory: ./
env:
LAMBDATEST_USERNAME: ${{ secrets.LAMBDATEST_USERNAME }}
LAMBDATEST_ACCESS_KEY: ${{ secrets.LAMBDATEST_ACCESS_KEY }}
BUILD_PREFIX: true
run: pnpm test.lambdatest.desktop --maxConcurrency=7
- name: 📤 Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: failure()
with:
name: dependency-update-desktop-web-logs
path: |
logs/*.log
.tmp/
!.tmp/checkActual/
!.tmp/saveActual/
!.tmp/testDiff/
!.next/
ci-pr-desktop-web:
name: 🔄 💻 CI PR Run Desktop Web Tests on LambdaTest
runs-on: ubuntu-latest
if: |
github.event_name == 'pull_request' &&
github.actor != 'dependabot[bot]'
steps:
- name: ⬇️ Checkout Repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: 📦 Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
with:
version: ${{ env.PNPM_VERSION }}
- name: 🟢 Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version-file: ".nvmrc"
cache: pnpm
- name: 🧩 Install Dependencies
run: pnpm pnpm.install.workaround
- name: 🏗️ Build
working-directory: ./
run: pnpm build
- name: 🧪 Run linting and unit tests
working-directory: ./
run: pnpm test
- name: 🖥️ 🌐 Run Desktop Web e2e tests
working-directory: ./
env:
LAMBDATEST_USERNAME: ${{ secrets.LAMBDATEST_USERNAME }}
LAMBDATEST_ACCESS_KEY: ${{ secrets.LAMBDATEST_ACCESS_KEY }}
BUILD_PREFIX: true
run: pnpm test.lambdatest.desktop --maxConcurrency=4
- name: 📤 Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: failure()
with:
name: ci-pr-desktop-web-logs
path: |
logs/*.log
.tmp/
!.tmp/checkActual/
!.tmp/saveActual/
!.tmp/testDiff/
!.next/
ci-pr-android-web:
name: 🔄 🤖 🌐 CI PR Run Android Web Tests on LambdaTest
runs-on: ubuntu-latest
if: |
github.event_name == 'pull_request' &&
github.actor != 'dependabot[bot]'
steps:
- name: ⬇️ Checkout Repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: 📦 Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
with:
version: ${{ env.PNPM_VERSION }}
- name: 🟢 Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version-file: ".nvmrc"
cache: pnpm
- name: 🧩 Install Dependencies
run: pnpm pnpm.install.workaround
- name: 🏗️ Build
working-directory: ./
run: pnpm build
- name: 🧪 Run linting and unit tests
working-directory: ./
run: pnpm test
- name: 🤖 🌐 Run Android Web e2e tests
working-directory: ./
env:
LAMBDATEST_USERNAME: ${{ secrets.LAMBDATEST_USERNAME }}
LAMBDATEST_ACCESS_KEY: ${{ secrets.LAMBDATEST_ACCESS_KEY }}
BUILD_PREFIX: true
run: pnpm test.lambdatest.emu.web --maxConcurrency=6
- name: 📤 Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: failure()
with:
name: ci-pr-android-web-logs
path: |
logs/*.log
.tmp/
!.tmp/checkActual/
!.tmp/saveActual/
!.tmp/testDiff/
!.next/
ci-pr-ios-web:
name: 🔄 🍏 🌐 CI PR Run iOS Web Tests on LambdaTest
runs-on: ubuntu-latest
if: |
github.event_name == 'pull_request' &&
github.actor != 'dependabot[bot]'
steps:
- name: ⬇️ Checkout Repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: 📦 Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
with:
version: ${{ env.PNPM_VERSION }}
- name: 🟢 Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version-file: ".nvmrc"
cache: pnpm
- name: 🧩 Install Dependencies
run: pnpm pnpm.install.workaround
- name: 🏗️ Build
working-directory: ./
run: pnpm build
- name: 🧪 Run linting and unit tests
working-directory: ./
run: pnpm test
- name: 🍏 🌐 Run iOS Web e2e tests
working-directory: ./
env:
LAMBDATEST_USERNAME: ${{ secrets.LAMBDATEST_USERNAME }}
LAMBDATEST_ACCESS_KEY: ${{ secrets.LAMBDATEST_ACCESS_KEY }}
BUILD_PREFIX: true
run: pnpm test.lambdatest.sims.web --maxConcurrency=6
- name: 📤 Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: failure()
with:
name: ci-pr-ios-web-logs
path: |
logs/*.log
.tmp/
!.tmp/checkActual/
!.tmp/saveActual/
!.tmp/testDiff/
!.next/
ci-pr-app:
name: 🔄 📱 CI PR Run Mobile App Tests on Sauce
runs-on: ubuntu-latest
if: |
github.event_name == 'pull_request' &&
github.actor != 'dependabot[bot]'
steps:
- name: ⬇️ Checkout Repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: 📦 Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
with:
version: ${{ env.PNPM_VERSION }}
- name: 🟢 Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version-file: ".nvmrc"
cache: pnpm
- name: 🧩 Install Dependencies
run: pnpm pnpm.install.workaround
- name: 🏗️ Build
working-directory: ./
run: pnpm build
- name: 🧪 Run linting and unit tests
working-directory: ./
run: pnpm test
- name: 😶‍🌫️ 📱 Run App e2e tests
working-directory: ./
env:
SAUCE_USERNAME_WDIO_ICS: ${{ secrets.SAUCE_USERNAME_WDIO_ICS }}
SAUCE_ACCESS_KEY_WDIO_ICS: ${{ secrets.SAUCE_ACCESS_KEY_WDIO_ICS }}
BUILD_PREFIX: true
run: pnpm test.saucelabs.app --maxConcurrency=20
- name: 📤 Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: failure()
with:
name: ci-pr-mobile-app-logs
path: |
logs/*.log
.tmp/
!.tmp/checkActual/
!.tmp/saveActual/
!.tmp/testDiff/
!.next/
ci-pr-ocr:
name: 🔄 📱 CI PR Run OCR Tests on LambdaTest
runs-on: ubuntu-latest
if: |
github.event_name == 'pull_request' &&
github.actor != 'dependabot[bot]'
steps:
- name: ⬇️ Checkout Repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: 📦 Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
with:
version: ${{ env.PNPM_VERSION }}
- name: 🟢 Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version-file: ".nvmrc"
cache: pnpm
- name: 🧩 Install Dependencies
run: pnpm pnpm.install.workaround
- name: 🏗️ Build
working-directory: ./
run: pnpm build
- name: 🧪 Run linting and unit tests
working-directory: ./
run: pnpm test
- name: 😶‍🌫️ 🔎 Run OCR e2e tests
working-directory: ./
env:
LAMBDATEST_USERNAME: ${{ secrets.LAMBDATEST_USERNAME }}
LAMBDATEST_ACCESS_KEY: ${{ secrets.LAMBDATEST_ACCESS_KEY }}
BUILD_PREFIX: true
run: pnpm test.ocr.lambdatest.desktop --maxConcurrency=1
- name: 📤 Upload artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: failure()
with:
name: ci-pr-ocr-logs
path: |
logs/*.log
.tmp/
!.next/