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.
138 lines
4 KiB
YAML
138 lines
4 KiB
YAML
name: Server
|
|
|
|
on:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
push:
|
|
branches: [ develop ]
|
|
|
|
concurrency:
|
|
group: server-postgres-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 (Postgres)
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:12.4
|
|
env:
|
|
POSTGRES_PASSWORD: travis
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
- 5432:5432
|
|
|
|
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: postgres
|
|
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: Postgres
|
|
fail_ci_if_error: true
|
|
files: /home/runner/frappe-bench/sites/coverage.xml
|
|
verbose: true
|
|
flags: server
|