-
Notifications
You must be signed in to change notification settings - Fork 3
140 lines (120 loc) · 4.31 KB
/
Copy pathci.yml
File metadata and controls
140 lines (120 loc) · 4.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
name: CI
on:
push:
branches:
- develop
- version-1
pull_request:
branches:
- develop
- version-1
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref_name }}
cancel-in-progress: true
jobs:
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
name: Server
services:
redis-cache:
image: redis:alpine
ports:
- 13000:6379
redis-queue:
image: redis:alpine
ports:
- 11000:6379
mariadb:
image: mariadb:11.8
env:
MYSQL_ROOT_PASSWORD: root
ports:
- 3306:3306
options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- name: Clone
uses: actions/checkout@v6
- name: Resolve runtime requirements
id: runtime
shell: bash
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
target_branch="${{ github.event.pull_request.base.ref }}"
else
target_branch="${{ github.ref_name }}"
fi
case "$target_branch" in
develop|version-1)
echo "frappe_branch=version-16" >> "$GITHUB_OUTPUT"
echo "python_version=3.14" >> "$GITHUB_OUTPUT"
echo "node_version=24" >> "$GITHUB_OUTPUT"
;;
*)
echo "Unsupported target branch: $target_branch"
exit 1
;;
esac
- name: Find tests
run: |
echo "Finding tests"
grep -rn "def test" > /dev/null
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ steps.runtime.outputs.python_version }}
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: ${{ steps.runtime.outputs.node_version }}
check-latest: true
- name: Cache pip
uses: actions/cache@v5
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ steps.runtime.outputs.frappe_branch }}-py${{ steps.runtime.outputs.python_version }}-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml', '**/setup.py', '**/setup.cfg') }}
restore-keys: |
${{ runner.os }}-pip-${{ steps.runtime.outputs.frappe_branch }}-py${{ steps.runtime.outputs.python_version }}-
${{ runner.os }}-
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: 'echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT'
- uses: actions/cache@v5
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-node${{ steps.runtime.outputs.node_version }}-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-node${{ steps.runtime.outputs.node_version }}-
- name: Update Package Repository
run: sudo apt update
- name: Install MariaDB Client
run: sudo apt-get install mariadb-client
- name: Setup
run: |
pip install frappe-bench
bench init --frappe-branch ${{ steps.runtime.outputs.frappe_branch }} --skip-redis-config-generation --skip-assets --python "$(which python)" ~/frappe-bench
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'"
- name: Install
working-directory: /home/runner/frappe-bench
run: |
bench get-app time_tracking $GITHUB_WORKSPACE
bench setup requirements --dev
bench new-site --db-root-password root --admin-password admin test_site
bench --site test_site install-app time_tracking
bench build
env:
CI: 'Yes'
- name: Migrate
working-directory: /home/runner/frappe-bench
run: |
bench --site test_site migrate
- name: Run Tests
working-directory: /home/runner/frappe-bench
run: |
bench --site test_site set-config allow_tests true
bench --site test_site run-tests --app time_tracking --skip-test-records
env:
TYPE: server