Given how widespread PY310's usage has become, and how we're just a few months away from PY311 major release. This is a slightly late bumping but necessary to ensure smoother updates & maintenance for Frappe, ERPNext & other apps in the coming years. Almost all people who participated in the pool from the community as well as Frappe team voted (via active telegram groups) PY310 as their preferred minimum requirement for v14.
135 lines
4 KiB
YAML
135 lines
4 KiB
YAML
name: Server
|
|
|
|
on:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
push:
|
|
branches: [ develop ]
|
|
|
|
concurrency:
|
|
group: server-mariadb-develop-${{ github.event.number }}
|
|
cancel-in-progress: true
|
|
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 60
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
container: [1, 2]
|
|
|
|
name: Python Unit Tests (MariaDB)
|
|
|
|
services:
|
|
mysql:
|
|
image: mariadb:10.3
|
|
env:
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: YES
|
|
ports:
|
|
- 3306:3306
|
|
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
|
|
|
|
steps:
|
|
- name: Clone
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Check if build should be run
|
|
id: check-build
|
|
run: |
|
|
python "${GITHUB_WORKSPACE}/.github/helper/roulette.py"
|
|
env:
|
|
TYPE: "server"
|
|
PR_NUMBER: ${{ github.event.number }}
|
|
REPO_NAME: ${{ github.repository }}
|
|
|
|
- uses: actions/setup-node@v3
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
with:
|
|
node-version: 14
|
|
check-latest: true
|
|
|
|
- name: Add to Hosts
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
run: |
|
|
echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts
|
|
echo "127.0.0.1 test_site_producer" | sudo tee -a /etc/hosts
|
|
|
|
- name: Cache pip
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml', '**/setup.py') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
${{ runner.os }}-
|
|
|
|
- name: Cache node modules
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
uses: actions/cache@v3
|
|
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
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
id: yarn-cache-dir-path
|
|
run: echo "::set-output name=dir::$(yarn cache dir)"
|
|
|
|
- uses: actions/cache@v3
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
id: yarn-cache
|
|
with:
|
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
|
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-yarn-
|
|
|
|
- name: Install Dependencies
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
run: bash ${GITHUB_WORKSPACE}/.github/helper/install_dependencies.sh
|
|
env:
|
|
BEFORE: ${{ env.GITHUB_EVENT_PATH.before }}
|
|
AFTER: ${{ env.GITHUB_EVENT_PATH.after }}
|
|
TYPE: server
|
|
|
|
- name: Install
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
run: bash ${GITHUB_WORKSPACE}/.github/helper/install.sh
|
|
env:
|
|
DB: mariadb
|
|
TYPE: server
|
|
|
|
- name: Run Tests
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
run: cd ~/frappe-bench/ && bench --site test_site run-parallel-tests --use-orchestrator --with-coverage
|
|
env:
|
|
CI_BUILD_ID: ${{ github.run_id }}
|
|
ORCHESTRATOR_URL: http://test-orchestrator.frappe.io
|
|
|
|
- name: Upload coverage data
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
uses: codecov/codecov-action@v3
|
|
with:
|
|
name: MariaDB
|
|
fail_ci_if_error: true
|
|
files: /home/runner/frappe-bench/sites/coverage.xml
|
|
verbose: true
|
|
flags: server
|