mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-11-01 18:53:59 -04:00
chore: cleanup actions and allow reuse + pr template (#1637)
* cleanup actions and allow reuse * add PR template
This commit is contained in:
88
.github/workflows/partial-backend.yml
vendored
Normal file
88
.github/workflows/partial-backend.yml
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
name: Backend Test/Lint
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
|
||||
jobs:
|
||||
tests:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
PRODUCTION: false
|
||||
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
# Database ENV Variablse as Specified by Mealie
|
||||
Database: [sqlite, postgres]
|
||||
|
||||
# Services
|
||||
services:
|
||||
postgres:
|
||||
image: postgres
|
||||
env:
|
||||
POSTGRES_USER: mealie
|
||||
POSTGRES_PASSWORD: mealie
|
||||
POSTGRES_DB: mealie
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
||||
ports:
|
||||
- 5432:5432
|
||||
# Steps
|
||||
steps:
|
||||
#----------------------------------------------
|
||||
# check-out repo and set-up python
|
||||
#----------------------------------------------
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: "3.10"
|
||||
#----------------------------------------------
|
||||
# ----- install & configure poetry -----
|
||||
#----------------------------------------------
|
||||
- name: Install Poetry
|
||||
uses: snok/install-poetry@v1
|
||||
with:
|
||||
virtualenvs-create: true
|
||||
virtualenvs-in-project: true
|
||||
#----------------------------------------------
|
||||
# load cached venv if cache exists
|
||||
#----------------------------------------------
|
||||
- name: Load cached venv
|
||||
id: cached-poetry-dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: .venv
|
||||
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
|
||||
#----------------------------------------------
|
||||
# install dependencies if cache does not exist
|
||||
#----------------------------------------------
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install libsasl2-dev libldap2-dev libssl-dev
|
||||
poetry install
|
||||
poetry add "psycopg2-binary==2.8.6"
|
||||
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
|
||||
|
||||
#----------------------------------------------
|
||||
# run test suite
|
||||
#----------------------------------------------
|
||||
- name: Formatting (Black & isort)
|
||||
run: |
|
||||
poetry run black . --check
|
||||
poetry run isort . --check-only
|
||||
- name: Lint (Flake8)
|
||||
run: |
|
||||
make backend-lint
|
||||
- name: Mypy Typecheck
|
||||
run: |
|
||||
make backend-typecheck
|
||||
- name: Pytest
|
||||
env:
|
||||
DB_ENGINE: ${{ matrix.Database }}
|
||||
POSTGRES_SERVER: localhost
|
||||
run: |
|
||||
make backend-test
|
||||
Reference in New Issue
Block a user