Files
upstream-frappe-crm/.github/workflows/server-tests.yml
upstream-mirror db69de1c11
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
snapshot of https://github.com/frappe/crm.git (develop, 2026-09-18; blobs > 131072B omitted)
2026-09-18 01:36:01 +05:00

107 lines
3.5 KiB
YAML

name: Server
on:
pull_request:
paths-ignore:
- "**.css"
- "**.js"
- "**.md"
- "**.html"
- "**.csv"
- "**.po"
- "**.pot"
schedule:
# Run everday at midnight UTC / 5:30 IST
- cron: "0 0 * * *"
env:
CRM_BRANCH: ${{ github.base_ref || github.ref_name }}
concurrency:
group: develop-crm-${{ github.event.number }}
cancel-in-progress: true
jobs:
setup:
name: Resolve frappe matrix
runs-on: ubuntu-latest
outputs:
frappe-branches: ${{ steps.resolve.outputs.branches }}
steps:
- name: Resolve frappe branches from target branch
id: resolve
run: |
BASE="${{ github.base_ref || github.ref_name }}"
# develop tracks frappe develop; the stable lane ships frappe 15 and 16.
if [ "$BASE" = "develop" ]; then
echo 'branches=["develop"]' >> "$GITHUB_OUTPUT"
else
echo 'branches=["version-15","version-16"]' >> "$GITHUB_OUTPUT"
fi
test:
name: Tests (frappe ${{ matrix.frappe-branch }})
needs: setup
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
frappe-branch: ${{ fromJson(needs.setup.outputs.frappe-branches) }}
services:
mysql:
image: mariadb:10.6
env:
MYSQL_ROOT_PASSWORD: root
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- name: Clone
uses: actions/checkout@v6
- name: Setup environment
uses: ./.github/actions/setup-server-env
with:
python-version: "3.14"
node-version: "24"
type: "server"
# erpnext: stable lane only, never v16 (v16 test bootstrap broken on bare bench)
install-erpnext: ${{ (github.base_ref == 'main-hotfix' || github.base_ref == 'main') && matrix.frappe-branch != 'version-16' }}
frappe-branch: ${{ matrix.frappe-branch }}
- name: Run server tests
uses: ./.github/actions/run-server-tests
with:
bench-path: "/home/runner/frappe-bench"
site: "test_site"
app: "crm"
enable-coverage: "true"
type: "server"
ci-build-id: ${{ github.run_id }}
- name: Persist coverage artifact
if: github.base_ref == 'develop' || github.ref_name == 'develop'
uses: ./.github/actions/upload-coverage
with:
artifact-name: coverage-${{ matrix.frappe-branch }}
coverage-path: /home/runner/frappe-bench/sites/coverage.xml
coverage:
name: Coverage Wrap Up
needs: test
if: github.base_ref == 'develop' || github.ref_name == 'develop'
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v6
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Publish coverage
uses: ./.github/actions/publish-codecov
with:
token: ${{ secrets.CODECOV_TOKEN }}