snapshot of https://github.com/frappe/crm.git (develop, 2026-09-18; blobs > 131072B omitted)
Some checks failed
Frontend / Unit Tests & Coverage (push) Has been skipped
Regenerate POT file (translatable strings) / Regenerate POT file (develop) (push) Failing after 1m13s
Regenerate POT file (translatable strings) / Regenerate POT file (main-hotfix) (push) Failing after 6s
Server / Tests (frappe ${{ matrix.frappe-branch }}) (push) Has been skipped
Server / Resolve frappe matrix (push) Failing after 1s
Frontend / Lint (push) Failing after 1s
Frontend / Production Build (push) Failing after 1s
Server / Coverage Wrap Up (push) Has been skipped
Frontend / Coverage Wrap Up (push) Has been skipped
Some checks failed
Frontend / Unit Tests & Coverage (push) Has been skipped
Regenerate POT file (translatable strings) / Regenerate POT file (develop) (push) Failing after 1m13s
Regenerate POT file (translatable strings) / Regenerate POT file (main-hotfix) (push) Failing after 6s
Server / Tests (frappe ${{ matrix.frappe-branch }}) (push) Has been skipped
Server / Resolve frappe matrix (push) Failing after 1s
Frontend / Lint (push) Failing after 1s
Frontend / Production Build (push) Failing after 1s
Server / Coverage Wrap Up (push) Has been skipped
Frontend / Coverage Wrap Up (push) Has been skipped
This commit is contained in:
43
.github/actions/frontend-tests/action.yml
vendored
Normal file
43
.github/actions/frontend-tests/action.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
name: Run Frontend Tests
|
||||
description: Install frontend dependencies and run Vitest with coverage.
|
||||
inputs:
|
||||
node-version:
|
||||
description: Node.js version to use
|
||||
required: false
|
||||
default: "24"
|
||||
enable-coverage:
|
||||
description: When true, run with coverage collection
|
||||
required: false
|
||||
default: "true"
|
||||
working-directory:
|
||||
description: Path to the frontend directory
|
||||
required: false
|
||||
default: "frontend"
|
||||
outputs:
|
||||
coverage-path:
|
||||
description: Path to the generated lcov coverage file
|
||||
value: ${{ steps.set-output.outputs.coverage-path }}
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.working-directory }}
|
||||
run: yarn install --frozen-lockfile
|
||||
|
||||
- name: Run tests (with coverage)
|
||||
if: inputs.enable-coverage == 'true'
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.working-directory }}
|
||||
run: yarn test:coverage
|
||||
|
||||
- name: Run tests (without coverage)
|
||||
if: inputs.enable-coverage != 'true'
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.working-directory }}
|
||||
run: yarn test:run
|
||||
|
||||
- name: Set coverage output path
|
||||
id: set-output
|
||||
shell: bash
|
||||
run: echo "coverage-path=${{ inputs.working-directory }}/coverage/lcov.info" >> "$GITHUB_OUTPUT"
|
||||
28
.github/actions/publish-codecov/action.yml
vendored
Normal file
28
.github/actions/publish-codecov/action.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
name: Publish Coverage to Codecov
|
||||
description: Upload downloaded coverage artifacts to Codecov.
|
||||
inputs:
|
||||
name:
|
||||
description: Coverage upload name in Codecov
|
||||
required: false
|
||||
default: "MariaDB"
|
||||
token:
|
||||
description: Codecov upload token
|
||||
required: true
|
||||
fail-ci-if-error:
|
||||
description: Fail workflow if Codecov upload fails
|
||||
required: false
|
||||
default: "true"
|
||||
verbose:
|
||||
description: Enable verbose Codecov logging
|
||||
required: false
|
||||
default: "true"
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Upload coverage data
|
||||
uses: codecov/codecov-action@v4
|
||||
with:
|
||||
name: ${{ inputs.name }}
|
||||
token: ${{ inputs.token }}
|
||||
fail_ci_if_error: ${{ inputs.fail-ci-if-error }}
|
||||
verbose: ${{ inputs.verbose }}
|
||||
42
.github/actions/run-server-tests/action.yml
vendored
Normal file
42
.github/actions/run-server-tests/action.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
name: Run CRM Server Tests
|
||||
description: Execute bench tests for the CRM app with optional coverage collection.
|
||||
inputs:
|
||||
bench-path:
|
||||
description: Absolute path to the bench directory
|
||||
required: false
|
||||
default: "/home/runner/frappe-bench"
|
||||
site:
|
||||
description: Bench site on which to run tests
|
||||
required: false
|
||||
default: "test_site"
|
||||
app:
|
||||
description: App to test
|
||||
required: false
|
||||
default: "crm"
|
||||
enable-coverage:
|
||||
description: When true, include coverage flag during test execution
|
||||
required: false
|
||||
default: "true"
|
||||
type:
|
||||
description: Bench command type environment variable
|
||||
required: false
|
||||
default: "server"
|
||||
ci-build-id:
|
||||
description: CI build identifier propagated to bench commands
|
||||
required: false
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Run Tests
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.bench-path }}
|
||||
env:
|
||||
TYPE: ${{ inputs.type }}
|
||||
CI_BUILD_ID: ${{ inputs.ci-build-id }}
|
||||
run: |
|
||||
bench --site "${{ inputs.site }}" set-config allow_tests true
|
||||
if [ "${{ inputs.enable-coverage }}" = "true" ]; then
|
||||
bench --site "${{ inputs.site }}" run-tests --app "${{ inputs.app }}" --coverage
|
||||
else
|
||||
bench --site "${{ inputs.site }}" run-tests --app "${{ inputs.app }}"
|
||||
fi
|
||||
95
.github/actions/setup-server-env/action.yml
vendored
Normal file
95
.github/actions/setup-server-env/action.yml
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
name: Setup Server Environment
|
||||
description: Prepare Python, Node, caching, and bench prerequisites for CRM server tests.
|
||||
inputs:
|
||||
python-version:
|
||||
description: Python version to install
|
||||
required: false
|
||||
default: "3.14"
|
||||
node-version:
|
||||
description: Node version to install
|
||||
required: false
|
||||
default: "24"
|
||||
type:
|
||||
description: Bench install type passed to install script
|
||||
required: false
|
||||
default: "server"
|
||||
install-erpnext:
|
||||
description: When "true", fetch and install erpnext alongside crm
|
||||
required: false
|
||||
default: "false"
|
||||
frappe-branch:
|
||||
description: Frappe (and erpnext) branch to install and test against
|
||||
required: false
|
||||
default: "develop"
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: ${{ inputs.python-version }}
|
||||
|
||||
- name: Check for valid Python & merge conflicts
|
||||
shell: bash
|
||||
run: |
|
||||
python -m compileall -f "${GITHUB_WORKSPACE}"
|
||||
if grep -lr --exclude-dir=node_modules "^<<<<<<< " "${GITHUB_WORKSPACE}"; then
|
||||
echo "Found merge conflicts"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: ${{ inputs.node-version }}
|
||||
check-latest: true
|
||||
|
||||
- name: Install Yarn
|
||||
shell: bash
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Add to hosts file
|
||||
shell: bash
|
||||
run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts
|
||||
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Cache node modules
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarn-cache-dir-path
|
||||
shell: bash
|
||||
run: echo "dir=$(yarn cache dir)" >> "${GITHUB_OUTPUT}"
|
||||
|
||||
- name: Cache yarn
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
|
||||
- name: Install bench dependencies
|
||||
shell: bash
|
||||
env:
|
||||
TYPE: ${{ inputs.type }}
|
||||
INSTALL_ERPNEXT: ${{ inputs.install-erpnext }}
|
||||
FRAPPE_BRANCH: ${{ inputs.frappe-branch }}
|
||||
run: bash ${GITHUB_WORKSPACE}/.github/helper/install.sh
|
||||
18
.github/actions/upload-coverage/action.yml
vendored
Normal file
18
.github/actions/upload-coverage/action.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
name: Upload Coverage Artifact
|
||||
description: Persist coverage artifacts produced during CRM server testing.
|
||||
inputs:
|
||||
artifact-name:
|
||||
description: Name assigned to the uploaded artifact
|
||||
required: false
|
||||
default: "coverage-server"
|
||||
coverage-path:
|
||||
description: Path to the coverage XML or directory to upload
|
||||
required: true
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Upload coverage data
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ inputs.artifact-name }}
|
||||
path: ${{ inputs.coverage-path }}
|
||||
Reference in New Issue
Block a user