From 30648e7a5a86338c8cd33419ba4a6d0de59742bf Mon Sep 17 00:00:00 2001 From: Rohan Bansal Date: Tue, 16 Jan 2024 15:01:36 +0530 Subject: [PATCH] ci: update github action --- .github/workflows/frappe.yml | 60 ++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/.github/workflows/frappe.yml b/.github/workflows/frappe.yml index 002a69c..73f9c81 100644 --- a/.github/workflows/frappe.yml +++ b/.github/workflows/frappe.yml @@ -22,7 +22,7 @@ jobs: mariadb: image: mariadb:10.6 env: - MYSQL_ROOT_PASSWORD: root + MARIADB_ROOT_PASSWORD: 'root' ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 @@ -31,23 +31,65 @@ jobs: - name: Clone uses: actions/checkout@v4 - - name: Setup Python 3.10 + - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.10' - # Instead of using setup-python's caching, separarely cache the python environment - # https://github.com/actions/setup-python/issues/330#issuecomment-1416883170 - - name: Cache Python 3.10 + - name: Check for valid Python & Merge Conflicts + run: | + python -m compileall -f "${GITHUB_WORKSPACE}" + if grep -lr --exclude-dir=node_modules "^<<<<<<< " "${GITHUB_WORKSPACE}" + then echo "Found merge conflicts" + exit 1 + fi + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18 + check-latest: true + + - name: Add to Hosts + run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts + + - name: Cache pip + uses: actions/cache@v3 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }} + restore-keys: | + ${{ runner.os }}-pip- + ${{ runner.os }}- + + - name: Cache node modules 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 + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - uses: actions/cache@v3 + id: yarn-cache with: - path: ${{ env.pythonLocation }} - key: ${{ env.pythonLocation }}-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml', '**/setup.py') }} + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- - name: Setup run: | pip install frappe-bench - bench init --frappe-path https://github.com/ParsimonyGit/frappe.git --frappe-branch parsimony-production-v15 --skip-redis-config-generation --ignore-exist --skip-assets --python "$(which python)" ~/frappe-bench + bench init --frappe-path https://github.com/ParsimonyGit/frappe.git --frappe-branch parsimony-production-v15 --skip-redis-config-generation --skip-assets --python "$(which python)" ~/frappe-bench mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'" mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'" @@ -66,6 +108,6 @@ jobs: # working-directory: /home/runner/frappe-bench # run: | # bench --site dev.localhost set-config allow_tests true - # bench --site dev.localhost run-tests --app shopify_integration --failfast + # bench --site dev.localhost run-tests --app shopify_integration # env: # TYPE: server