fix: image and CI errors (#1694)

* bump cache version

* bump version

* delete template file

* maybe fix invalid CI?

* chain status command

* fix add tesseract bin to container & bump poetry (#1676)

* Add tesseract bin to container

* Add tesseract bin

Co-authored-by: Miroito <88556823+Miroito@users.noreply.github.com>
This commit is contained in:
Hayden 2022-10-02 16:24:13 -08:00 committed by GitHub
parent 47e7783ef5
commit 6159b55be9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 45 additions and 57 deletions

View file

@ -3,7 +3,6 @@ name: Backend Test/Lint
on:
workflow_call:
jobs:
tests:
runs-on: ubuntu-latest
@ -30,56 +29,56 @@ jobs:
- 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
uses: actions/cache@v3
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
#----------------------------------------------
# install dependencies if cache does not exist
#----------------------------------------------
- name: Check venv cache
id: cache-validate
if: steps.cached-poetry-dependencies.outputs.cache-hit == 'true'
run: |
echo "print('venv good?')" > test.py && poetry run python test.py && echo ::set-output name=cache-hit-success::true
rm test.py
continue-on-error: true
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install libsasl2-dev libldap2-dev libssl-dev tesseract-ocr-all
poetry install
poetry add "psycopg2-binary==2.8.6"
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' || steps.cache-validate.outputs.cache-hit-success != '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 }}

View file

@ -34,13 +34,14 @@ RUN apt-get update \
build-essential \
libpq-dev \
libwebp-dev \
tesseract-ocr-all \
# LDAP Dependencies
libsasl2-dev libldap2-dev libssl-dev \
gnupg gnupg2 gnupg1 \
&& pip install -U --no-cache-dir pip
# install poetry - respects $POETRY_VERSION & $POETRY_HOME
ENV POETRY_VERSION=1.1.6
ENV POETRY_VERSION=1.2.1
RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python -
# copy project requirement files here to ensure they will be cached.
@ -98,6 +99,7 @@ ENV GIT_COMMIT_HASH=$COMMIT
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
curl gosu \
tesseract-ocr-all \
&& apt-get autoremove \
&& rm -rf /var/lib/apt/lists/*

View file

@ -33,7 +33,7 @@
>
</canvas>
<span style="white-space: pre-wrap">
{{ selectedText }}
{{ selectedText.trim() }}
</span>
</v-card>
</template>

32
poetry.lock generated
View file

@ -1271,7 +1271,7 @@ rdflib = ">=5.0.0"
[[package]]
name = "recipe-scrapers"
version = "14.14.0"
version = "14.14.1"
description = "Python package, scraping recipes from all over the internet"
category = "main"
optional = false
@ -1281,6 +1281,8 @@ python-versions = ">=3.6"
beautifulsoup4 = ">=4.10.0"
extruct = ">=0.8.0"
requests = ">=2.19.1"
types-beautifulsoup4 = ">=4.11.6"
types-requests = ">=2.28.10"
[[package]]
name = "requests"
@ -1457,6 +1459,14 @@ category = "dev"
optional = false
python-versions = ">=3.6,<4.0"
[[package]]
name = "types-beautifulsoup4"
version = "4.11.6"
description = "Typing stubs for beautifulsoup4"
category = "main"
optional = false
python-versions = "*"
[[package]]
name = "types-python-dateutil"
version = "2.8.18"
@ -1483,9 +1493,9 @@ python-versions = "*"
[[package]]
name = "types-requests"
version = "2.28.0"
version = "2.28.11"
description = "Typing stubs for requests"
category = "dev"
category = "main"
optional = false
python-versions = "*"
@ -1496,7 +1506,7 @@ types-urllib3 = "<1.27"
name = "types-urllib3"
version = "1.26.16"
description = "Typing stubs for urllib3"
category = "dev"
category = "main"
optional = false
python-versions = "*"
@ -1657,7 +1667,7 @@ pgsql = ["psycopg2-binary"]
[metadata]
lock-version = "1.1"
python-versions = "^3.10"
content-hash = "ca180bde6c864c179c667a7602eea204e1fd4fc401f25189283a0632f41fb79a"
content-hash = "cdb8c0e668b4ccc85b017a43f705432d989323a1558274e126e96d6434f2fe71"
[metadata.files]
aiofiles = [
@ -2610,8 +2620,8 @@ rdflib-jsonld = [
{file = "rdflib_jsonld-0.6.2-py2.py3-none-any.whl", hash = "sha256:011afe67672353ca9978ab9a4bee964dff91f14042f2d8a28c22a573779d2f8b"},
]
recipe-scrapers = [
{file = "recipe_scrapers-14.14.0-py3-none-any.whl", hash = "sha256:47f87115bdbb612dcb42d39c4b6e79e66be4c229dbea4c685293dfa060f3a1fa"},
{file = "recipe_scrapers-14.14.0.tar.gz", hash = "sha256:d618131b76fee41e0fedbe333ef5438596ee5cf509081dde0ad5d1060d54b3dd"},
{file = "recipe_scrapers-14.14.1-py3-none-any.whl", hash = "sha256:c6fb87c9ebd8db1b1c04bd1356cd420a1cc46df79f04431b8e9c92a5a76c34e3"},
{file = "recipe_scrapers-14.14.1.tar.gz", hash = "sha256:1b2345a1ef9617863df981fcb43c9ad417aa8c10815ab917eeffbf55fea6b8ca"},
]
requests = [
{file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"},
@ -2703,6 +2713,10 @@ tomlkit = [
{file = "tomlkit-0.11.1-py3-none-any.whl", hash = "sha256:1c5bebdf19d5051e2e1de6cf70adfc5948d47221f097fcff7a3ffc91e953eaf5"},
{file = "tomlkit-0.11.1.tar.gz", hash = "sha256:61901f81ff4017951119cd0d1ed9b7af31c821d6845c8c477587bbdcd5e5854e"},
]
types-beautifulsoup4 = [
{file = "types-beautifulsoup4-4.11.6.tar.gz", hash = "sha256:2670dd71995df464041e2941fa9bbb694795271e3dedd7262b4766649a1cbe82"},
{file = "types_beautifulsoup4-4.11.6-py3-none-any.whl", hash = "sha256:ac9dd1383481201ea07f27c5a43e7b1ee71caf9c720b7ae951db15d60d126e80"},
]
types-python-dateutil = [
{file = "types-python-dateutil-2.8.18.tar.gz", hash = "sha256:8695c7d7a5b1aef4002f3ab4e1247e23b1d41cd7cc1286d4594c2d8c5593c991"},
{file = "types_python_dateutil-2.8.18-py3-none-any.whl", hash = "sha256:fd5ed97262b76ae684695ea38ace8dd7c1bc9491aba7eb4edf6654b7ecabc870"},
@ -2716,8 +2730,8 @@ types-pyyaml = [
{file = "types_PyYAML-6.0.9-py3-none-any.whl", hash = "sha256:b738e9ef120da0af8c235ba49d3b72510f56ef9bcc308fc8e7357100ff122284"},
]
types-requests = [
{file = "types-requests-2.28.0.tar.gz", hash = "sha256:9863d16dfbb3fa55dcda64fa3b989e76e8859033b26c1e1623e30465cfe294d3"},
{file = "types_requests-2.28.0-py3-none-any.whl", hash = "sha256:85383b4ef0535f639c3f06c5bbb6494bbf59570c4cd88bbcf540f0b2ac1b49ab"},
{file = "types-requests-2.28.11.tar.gz", hash = "sha256:7ee827eb8ce611b02b5117cfec5da6455365b6a575f5e3ff19f655ba603e6b4e"},
{file = "types_requests-2.28.11-py3-none-any.whl", hash = "sha256:af5f55e803cabcfb836dad752bd6d8a0fc8ef1cd84243061c0e27dee04ccf4fd"},
]
types-urllib3 = [
{file = "types-urllib3-1.26.16.tar.gz", hash = "sha256:8bb3832c684c30cbed40b96e28bc04703becb2b97d82ac65ba4b968783453b0e"},

View file

@ -30,7 +30,7 @@ passlib = "^1.7.4"
lxml = "^4.7.1"
Pillow = "^9.2.0"
apprise = "^0.9.6"
recipe-scrapers = "^14.14.0"
recipe-scrapers = "^14.14.1"
psycopg2-binary = {version = "^2.9.1", optional = true}
gunicorn = "^20.1.0"
emails = "^0.6"

View file

@ -1,27 +0,0 @@
<template>
<div></div>
</template>
<script lang="ts">
import { defineComponent } from "@nuxtjs/composition-api";
import { usePageState, usePageUser } from "~/composables/recipe-page/shared-state";
import { NoUndefinedField } from "~/types/api";
import { Recipe } from "~/types/api-types/recipe";
export default defineComponent({
props: {
recipe: {
type: Object as () => NoUndefinedField<Recipe>,
required: true,
},
},
setup(props) {
const { user } = usePageUser();
const { imageKey } = usePageState(props.recipe.slug);
return {
user,
imageKey,
};
},
});
</script>