blob: 4103bc68a9183fbb447c0df9e2198a1103102a3e [file] [log] [blame]
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +05301name: CI
2
Sagar Vorac647b602021-03-17 20:04:59 +05303on: [pull_request, workflow_dispatch, push]
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +05304
5jobs:
6 test:
Mohammad Hasnain Mohsin Rajan192ab052021-03-18 17:12:12 +05307 runs-on: ubuntu-18.04
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +05308
9 strategy:
10 fail-fast: false
Mohammad Hasnain Mohsin Rajan46d54312021-03-15 11:17:19 +053011
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +053012 matrix:
13 include:
14 - TYPE: "server"
15 JOB_NAME: "Server"
Mohammad Hasnain Mohsin Rajan46d54312021-03-15 11:17:19 +053016 RUN_COMMAND: cd ~/frappe-bench/ && bench --site test_site run-tests --app erpnext --coverage
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +053017 - TYPE: "patch"
18 JOB_NAME: "Patch"
Mohammad Hasnain Mohsin Rajan46d54312021-03-15 11:17:19 +053019 RUN_COMMAND: cd ~/frappe-bench/ && wget http://build.erpnext.com/20171108_190013_955977f8_database.sql.gz && bench --site test_site --force restore ~/frappe-bench/20171108_190013_955977f8_database.sql.gz && bench --site test_site migrate
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +053020
21 name: ${{ matrix.JOB_NAME }}
22
23 services:
24 mysql:
25 image: mariadb:10.3
26 env:
27 MYSQL_ALLOW_EMPTY_PASSWORD: YES
28 ports:
29 - 3306:3306
30 options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
31
32 steps:
33 - name: Clone
34 uses: actions/checkout@v2
35
36 - name: Setup Python
37 uses: actions/setup-python@v2
38 with:
39 python-version: 3.6
40
41 - name: Add to Hosts
42 run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts
43
44 - name: Cache pip
45 uses: actions/cache@v2
46 with:
47 path: ~/.cache/pip
48 key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
49 restore-keys: |
50 ${{ runner.os }}-pip-
51 ${{ runner.os }}-
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +053052 - name: Cache node modules
53 uses: actions/cache@v2
54 env:
55 cache-name: cache-node-modules
56 with:
57 path: ~/.npm
58 key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
59 restore-keys: |
60 ${{ runner.os }}-build-${{ env.cache-name }}-
61 ${{ runner.os }}-build-
62 ${{ runner.os }}-
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +053063 - name: Get yarn cache directory path
64 id: yarn-cache-dir-path
65 run: echo "::set-output name=dir::$(yarn cache dir)"
66
67 - uses: actions/cache@v2
68 id: yarn-cache
69 with:
70 path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
71 key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
72 restore-keys: |
73 ${{ runner.os }}-yarn-
74
75 - name: Install
76 run: bash ${GITHUB_WORKSPACE}/.github/helper/install.sh
77
78 - name: Run Tests
Mohammad Hasnain Mohsin Rajan46d54312021-03-15 11:17:19 +053079 run: ${{ matrix.RUN_COMMAND }}
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +053080 env:
81 TYPE: ${{ matrix.TYPE }}
82
83 - name: Coverage
84 if: matrix.TYPE == 'server'
85 run: |
86 cp ~/frappe-bench/sites/.coverage ${GITHUB_WORKSPACE}
87 cd ${GITHUB_WORKSPACE}
Mohammad Hasnain Mohsin Rajanc9187b02021-04-28 13:32:27 +053088 pip install coveralls==2.2.0
89 pip install coverage==4.5.4
Rohan Bansal524b81a2021-04-02 15:36:50 +053090 coveralls --service=github
Mohammad Hasnain Mohsin Rajan0f60f082021-03-12 14:09:52 +053091 env:
92 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
93 COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }}