bump deps #2215
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Checks for each PR / push | |
name: QC | |
on: | |
push: | |
branches-ignore: ['l10*'] | |
pull_request: | |
branches-ignore: ['l10*'] | |
env: | |
python_version: 3.9 | |
node_version: 16 | |
# The OS version must be set per job | |
server_start_sleep: 60 | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
INVENTREE_DB_ENGINE: sqlite3 | |
INVENTREE_DB_NAME: inventree | |
INVENTREE_MEDIA_ROOT: ../test_inventree_media | |
INVENTREE_STATIC_ROOT: ../test_inventree_static | |
INVENTREE_BACKUP_DIR: ../test_inventree_backup | |
jobs: | |
paths-filter: | |
name: Filter | |
runs-on: ubuntu-latest | |
outputs: | |
server: ${{ steps.filter.outputs.server }} | |
migrations: ${{ steps.filter.outputs.migrations }} | |
frontend: ${{ steps.filter.outputs.frontend }} | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
server: | |
- 'InvenTree/**' | |
- 'requirements.txt' | |
- 'requirements-dev.txt' | |
migrations: | |
- '**/migrations/**' | |
- '.github/workflows**' | |
frontend: | |
- 'src/frontend/**' | |
pep_style: | |
name: Style [Python] | |
runs-on: ubuntu-20.04 | |
needs: paths-filter | |
if: needs.paths-filter.outputs.server == 'true' | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
dev-install: true | |
- name: Run flake8 | |
run: flake8 InvenTree --extend-ignore=D | |
javascript: | |
name: Style [JS] | |
runs-on: ubuntu-20.04 | |
needs: pep_style | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
npm: true | |
install: true | |
- name: Check Templated JS Files | |
run: | | |
cd ci | |
python3 check_js_templates.py | |
- name: Lint Javascript Files | |
run: | | |
python InvenTree/manage.py prerender | |
npx eslint InvenTree/InvenTree/static_i18n/i18n/*.js | |
pre-commit: | |
name: Style [pre-commit] | |
runs-on: ubuntu-20.04 | |
needs: pep_style | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Set up Python ${{ env.python_version }} | |
uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984 # pin@v4.3.0 | |
with: | |
python-version: ${{ env.python_version }} | |
cache: 'pip' | |
- name: Run pre-commit Checks | |
uses: pre-commit/action@646c83fcd040023954eafda54b4db0192ce70507 # pin@v3.0.0 | |
- name: Check Version | |
run: | | |
pip install requests | |
python3 ci/version_check.py | |
mkdocs: | |
name: Style [Documentation] | |
runs-on: ubuntu-20.04 | |
needs: paths-filter | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Set up Python ${{ env.python_version }} | |
uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984 # pin@v4.3.0 | |
with: | |
python-version: ${{ env.python_version }} | |
- name: Check Config | |
run: | | |
pip install pyyaml | |
python docs/ci/check_mkdocs_config.py | |
- name: Check Links | |
run: | | |
pip install linkcheckmd requests | |
python -m linkcheckmd docs --recurse | |
python: | |
name: Tests - inventree-python | |
runs-on: ubuntu-20.04 | |
needs: pre-commit | |
env: | |
wrapper_name: inventree-python | |
INVENTREE_DB_ENGINE: django.db.backends.sqlite3 | |
INVENTREE_DB_NAME: ../inventree_unit_test_db.sqlite3 | |
INVENTREE_ADMIN_USER: testuser | |
INVENTREE_ADMIN_PASSWORD: testpassword | |
INVENTREE_ADMIN_EMAIL: test@test.com | |
INVENTREE_PYTHON_TEST_SERVER: http://localhost:12345 | |
INVENTREE_PYTHON_TEST_USERNAME: testuser | |
INVENTREE_PYTHON_TEST_PASSWORD: testpassword | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
apt-dependency: gettext poppler-utils | |
dev-install: true | |
update: true | |
- name: Download Python Code For `${{ env.wrapper_name }}` | |
run: git clone --depth 1 https://github.com/inventree/${{ env.wrapper_name }} | |
./${{ env.wrapper_name }} | |
- name: Start InvenTree Server | |
run: | | |
invoke delete-data -f | |
invoke import-fixtures | |
invoke server -a 127.0.0.1:12345 & | |
invoke wait | |
- name: Run Tests For `${{ env.wrapper_name }}` | |
run: | | |
cd ${{ env.wrapper_name }} | |
invoke check-server | |
coverage run -m unittest discover -s test/ | |
docstyle: | |
name: Style [Python Docstrings] | |
runs-on: ubuntu-20.04 | |
needs: pre-commit | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
install: true | |
- name: Run flake8 | |
run: flake8 InvenTree --statistics | |
coverage: | |
name: Tests - DB [SQLite] + Coverage | |
runs-on: ubuntu-20.04 | |
needs: [ 'javascript', 'pre-commit' ] | |
continue-on-error: true # continue if a step fails so that coverage gets pushed | |
env: | |
INVENTREE_DB_NAME: ./inventree.sqlite | |
INVENTREE_DB_ENGINE: sqlite3 | |
INVENTREE_PLUGINS_ENABLED: true | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
apt-dependency: gettext poppler-utils | |
dev-install: true | |
update: true | |
- name: Data Export Test | |
uses: ./.github/actions/migration | |
- name: Test Translations | |
run: invoke translate | |
- name: Check Migration Files | |
run: python3 ci/check_migration_files.py | |
- name: Coverage Tests | |
run: invoke test --coverage | |
- name: Upload Coverage Report | |
uses: coverallsapp/github-action@v2 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
postgres: | |
name: Tests - DB [PostgreSQL] | |
runs-on: ubuntu-20.04 | |
needs: [ 'javascript', 'pre-commit' ] | |
env: | |
INVENTREE_DB_ENGINE: django.db.backends.postgresql | |
INVENTREE_DB_USER: inventree | |
INVENTREE_DB_PASSWORD: password | |
INVENTREE_DB_HOST: '127.0.0.1' | |
INVENTREE_DB_PORT: 5432 | |
INVENTREE_DEBUG: info | |
INVENTREE_CACHE_HOST: localhost | |
INVENTREE_PLUGINS_ENABLED: true | |
services: | |
postgres: | |
image: postgres:14 | |
env: | |
POSTGRES_USER: inventree | |
POSTGRES_PASSWORD: password | |
ports: | |
- 5432:5432 | |
redis: | |
image: redis | |
ports: | |
- 6379:6379 | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
apt-dependency: gettext poppler-utils libpq-dev | |
pip-dependency: psycopg2 django-redis>=5.0.0 | |
dev-install: true | |
update: true | |
- name: Run Tests | |
run: invoke test | |
- name: Data Export Test | |
uses: ./.github/actions/migration | |
mysql: | |
name: Tests - DB [MySQL] | |
runs-on: ubuntu-20.04 | |
needs: [ 'javascript', 'pre-commit' ] | |
if: github.event_name == 'push' | |
env: | |
# Database backend configuration | |
INVENTREE_DB_ENGINE: django.db.backends.mysql | |
INVENTREE_DB_USER: root | |
INVENTREE_DB_PASSWORD: password | |
INVENTREE_DB_HOST: '127.0.0.1' | |
INVENTREE_DB_PORT: 3306 | |
INVENTREE_DEBUG: info | |
INVENTREE_PLUGINS_ENABLED: true | |
services: | |
mysql: | |
image: mysql:latest | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: yes | |
MYSQL_DATABASE: ${{ env.INVENTREE_DB_NAME }} | |
MYSQL_USER: inventree | |
MYSQL_PASSWORD: password | |
MYSQL_ROOT_PASSWORD: password | |
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s | |
--health-retries=3 | |
ports: | |
- 3306:3306 | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
apt-dependency: gettext poppler-utils libmysqlclient-dev | |
pip-dependency: mysqlclient | |
dev-install: true | |
update: true | |
- name: Run Tests | |
run: invoke test | |
- name: Data Export Test | |
uses: ./.github/actions/migration | |
migration-tests: | |
name: Run Migration Unit Tests | |
runs-on: ubuntu-latest | |
needs: paths-filter | |
if: github.ref == 'refs/heads/master' && needs.paths-filter.outputs.migrations == 'true' | |
env: | |
INVENTREE_DB_ENGINE: django.db.backends.postgresql | |
INVENTREE_DB_NAME: inventree | |
INVENTREE_DB_USER: inventree | |
INVENTREE_DB_PASSWORD: password | |
INVENTREE_DB_HOST: '127.0.0.1' | |
INVENTREE_DB_PORT: 5432 | |
INVENTREE_DEBUG: info | |
INVENTREE_PLUGINS_ENABLED: false | |
services: | |
postgres: | |
image: postgres:14 | |
env: | |
POSTGRES_USER: inventree | |
POSTGRES_PASSWORD: password | |
ports: | |
- 5432:5432 | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
apt-dependency: gettext poppler-utils libpq-dev | |
pip-dependency: psycopg2 | |
dev-install: true | |
update: true | |
- name: Run Tests | |
run: invoke test --migrations --report | |
migrations-checks: | |
name: Run Database Migrations | |
runs-on: ubuntu-latest | |
needs: paths-filter | |
if: github.ref == 'refs/heads/master' && needs.paths-filter.outputs.migrations == 'true' | |
env: | |
INVENTREE_DB_ENGINE: sqlite3 | |
INVENTREE_DB_NAME: /home/runner/work/InvenTree/db.sqlite3 | |
INVENTREE_DEBUG: info | |
INVENTREE_PLUGINS_ENABLED: false | |
steps: | |
- uses: actions/checkout@v3 | |
name: Checkout Code | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
install: true | |
- name: Fetch Database | |
run: git clone --depth 1 https://github.com/inventree/test-db ./test-db | |
- name: Latest Database | |
run: | | |
cp test-db/latest.sqlite3 /home/runner/work/InvenTree/db.sqlite3 | |
chmod +rw /home/runner/work/InvenTree/db.sqlite3 | |
invoke migrate | |
- name: 0.10.0 Database | |
run: | | |
rm /home/runner/work/InvenTree/db.sqlite3 | |
cp test-db/stable_0.10.0.sqlite3 /home/runner/work/InvenTree/db.sqlite3 | |
chmod +rw /home/runner/work/InvenTree/db.sqlite3 | |
invoke migrate | |
- name: 0.11.0 Database | |
run: | | |
rm /home/runner/work/InvenTree/db.sqlite3 | |
cp test-db/stable_0.11.0.sqlite3 /home/runner/work/InvenTree/db.sqlite3 | |
chmod +rw /home/runner/work/InvenTree/db.sqlite3 | |
invoke migrate | |
- name: 0.12.0 Database | |
run: | | |
rm /home/runner/work/InvenTree/db.sqlite3 | |
cp test-db/stable_0.12.0.sqlite3 /home/runner/work/InvenTree/db.sqlite3 | |
chmod +rw /home/runner/work/InvenTree/db.sqlite3 | |
invoke migrate | |
plattform_ui: | |
name: Tests - UI Platform | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 60 | |
needs: paths-filter | |
if: needs.paths-filter.outputs.frontend == 'true' | |
env: | |
INVENTREE_DB_ENGINE: sqlite3 | |
INVENTREE_DB_NAME: /home/runner/work/InvenTree/db.sqlite3 | |
INVENTREE_DEBUG: True | |
INVENTREE_PLUGINS_ENABLED: false | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # pin@v3.1.0 | |
- name: Environment Setup | |
uses: ./.github/actions/setup | |
with: | |
npm: true | |
install: true | |
update: true | |
- name: Set up test data | |
run: invoke setup-test -i | |
- name: Install dependencies | |
run: cd src/frontend && yarn install | |
- name: Install Playwright Browsers | |
run: cd src/frontend && npx playwright install --with-deps | |
- name: Run Playwright tests | |
run: cd src/frontend && npx playwright test | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: playwright-report | |
path: src/frontend/playwright-report/ | |
retention-days: 30 |