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.
134 lines
4.1 KiB
YAML
134 lines
4.1 KiB
YAML
name: Patch
|
|
|
|
on: [pull_request, workflow_dispatch]
|
|
|
|
|
|
concurrency:
|
|
group: patch-mariadb-develop-${{ github.event.number }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 60
|
|
|
|
name: Patch Test
|
|
|
|
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: Setup Node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 14
|
|
check-latest: true
|
|
|
|
- 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 }}
|
|
|
|
- name: Add to Hosts
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
run: echo "127.0.0.1 test_site" | 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 Patch Tests
|
|
if: ${{ steps.check-build.outputs.build == 'strawberry' }}
|
|
run: |
|
|
cd ~/frappe-bench/
|
|
wget https://frappeframework.com/files/v10-frappe.sql.gz
|
|
bench --site test_site --force restore ~/frappe-bench/v10-frappe.sql.gz
|
|
|
|
source env/bin/activate
|
|
cd apps/frappe/
|
|
git remote set-url upstream https://github.com/frappe/frappe.git
|
|
|
|
for version in $(seq 12 13)
|
|
do
|
|
echo "Updating to v$version"
|
|
branch_name="version-$version-hotfix"
|
|
git fetch --depth 1 upstream $branch_name:$branch_name
|
|
|
|
git checkout -q -f $branch_name
|
|
bench setup requirements --python
|
|
bench --site test_site migrate
|
|
done
|
|
|
|
echo "Updating to last commit"
|
|
git checkout -q -f "$GITHUB_SHA"
|
|
bench setup requirements --python
|
|
bench --site test_site migrate
|