From 67a50d92c76b5d2798324b5636a71a12e552d308 Mon Sep 17 00:00:00 2001 From: Chavithra Date: Wed, 26 Oct 2022 13:43:05 +0200 Subject: [PATCH] Docker + Pypi : update logs + builds (#3016) * Log : move LOGGING_COMMIT_HASH * Build : pypi * Build : docker * Poetry : pyproject.toml * Docker : test cd * Docker : test cd * Docker : test cd * Docker : update cd * Docker : update workflow * Docker : remove script * Tests : loggers * Docker : workflow * Pypi : build script * Pypi : adding MANIFEST.in Co-authored-by: Henrique Joaquim --- .github/workflows/docker.yml | 12 ++++++++++++ MANIFEST.in | 1 + build/pypi/build.sh | 10 ++++++++++ docker/poetry-deps.dockerfile | 2 +- docker/poetry.dockerfile | 2 -- openbb_terminal/config_terminal.py | 4 +++- openbb_terminal/core/config/paths.py | 1 + openbb_terminal/feature_flags.py | 4 ++-- openbb_terminal/loggers.py | 8 ++++---- openbb_terminal/terminal_helper.py | 6 +++--- pyproject.toml | 1 + tests/openbb_terminal/test_loggers.py | 2 +- 12 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 MANIFEST.in create mode 100644 build/pypi/build.sh diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 32ec09366cc..248a337bb83 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -7,6 +7,8 @@ jobs: runs-on: ubuntu-latest env: OPENBBTERMINAL_DOCKER_GITHUB_REPOSITORY: ${{ github.repository }} + OPENBB_LOGGING_APP_NAME: "gst_docker" + steps: - name: Checkout Code @@ -19,6 +21,16 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Setup commit hash + run: | + echo "OPENBB_LOGGING_COMMIT_HASH=sha:$(git rev-parse --short=8 "$GITHUB_SHA")" >> $GITHUB_ENV + + - name: Build env file + run: | + echo "OPENBB_LOGGING_APP_NAME='${OPENBB_LOGGING_APP_NAME}'" > openbb_terminal/.env + echo "OPENBB_LOGGING_COMMIT_HASH='${OPENBB_LOGGING_COMMIT_HASH}'" >> openbb_terminal/.env + cat openbb_terminal/.env + - name: Building the Docker image run: | source docker/compose.env diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000000..a9fc50aa947 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +include openbb_terminal/.env \ No newline at end of file diff --git a/build/pypi/build.sh b/build/pypi/build.sh new file mode 100644 index 00000000000..53f67fad0ef --- /dev/null +++ b/build/pypi/build.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# BUILD `openbb_terminal/.env` +OPENBB_LOGGING_COMMIT_HASH="sha:$(git rev-parse --short=8 HEAD)" +OPENBB_LOGGING_APP_NAME="gst_packaged_pypi" +echo "OPENBB_LOGGING_APP_NAME='${OPENBB_LOGGING_APP_NAME}'" > openbb_terminal/.env +echo "OPENBB_LOGGING_COMMIT_HASH=${OPENBB_LOGGING_COMMIT_HASH}" >> openbb_terminal/.env + +poetry build +poetry publish \ No newline at end of file diff --git a/docker/poetry-deps.dockerfile b/docker/poetry-deps.dockerfile index 7099d7a8c7b..31dfd05e970 100644 --- a/docker/poetry-deps.dockerfile +++ b/docker/poetry-deps.dockerfile @@ -4,7 +4,7 @@ FROM ${OPENBBTERMINAL_DOCKER_PYTHON_IMAGE} LABEL org.opencontainers.image.source https://github.com/OpenBB-finance/OpenBBTerminal -COPY --chown=python:python pyproject.toml poetry.lock /home/python/ +COPY --chown=python:python pyproject.toml poetry.lock README.md /home/python/ RUN mkdir /home/python/openbb_terminal RUN touch openbb_terminal/__init__.py diff --git a/docker/poetry.dockerfile b/docker/poetry.dockerfile index ca3c0d45604..3753426cf1a 100644 --- a/docker/poetry.dockerfile +++ b/docker/poetry.dockerfile @@ -6,6 +6,4 @@ LABEL org.opencontainers.image.source https://github.com/OpenBB-finance/OpenBBTe COPY --chown=python:python . . -RUN echo "OPENBB_LOGGING_APP_NAME=gst_docker" > .env - CMD ["bash", "docker/entry-point-poetry.sh"] diff --git a/openbb_terminal/config_terminal.py b/openbb_terminal/config_terminal.py index cdced128d62..72194b2936b 100644 --- a/openbb_terminal/config_terminal.py +++ b/openbb_terminal/config_terminal.py @@ -7,11 +7,12 @@ import dotenv # IMPORTATION INTERNAL -from openbb_terminal.core.config.paths import USER_ENV_FILE, REPOSITORY_ENV_FILE +from openbb_terminal.core.config.paths import PACKAGE_ENV_FILE, USER_ENV_FILE, REPOSITORY_ENV_FILE from .helper_classes import TerminalStyle as _TerminalStyle dotenv.load_dotenv(USER_ENV_FILE) dotenv.load_dotenv(REPOSITORY_ENV_FILE, override=True) +dotenv.load_dotenv(PACKAGE_ENV_FILE, override=True) # Terminal UX section MPL_STYLE = os.getenv("OPENBB_MPLSTYLE") or "dark" @@ -46,6 +47,7 @@ LOGGING_AWS_ACCESS_KEY_ID = ( LOGGING_AWS_SECRET_ACCESS_KEY = ( os.getenv("OPENBB_LOGGING_AWS_SECRET_ACCESS_KEY") or "REPLACE_ME" ) +LOGGING_COMMIT_HASH = str(os.getenv("OPENBB_LOGGING_COMMIT_HASH", "REPLACE_ME")) # D | H | M | S LOGGING_FREQUENCY = os.getenv("OPENBB_LOGGING_FREQUENCY") or "H" # stdout,stderr,noop,file diff --git a/openbb_terminal/core/config/paths.py b/openbb_terminal/core/config/paths.py index 2dc818a0628..09a1aef40f8 100644 --- a/openbb_terminal/core/config/paths.py +++ b/openbb_terminal/core/config/paths.py @@ -21,6 +21,7 @@ REPOSITORY_DIRECTORY = Path(__file__).parent.parent.parent.parent PACKAGE_DIRECTORY = Path(__file__).parent.parent.parent MISCELLANEOUS_DIRECTORY = PACKAGE_DIRECTORY / "miscellaneous" REPOSITORY_ENV_FILE = REPOSITORY_DIRECTORY / ".env" +PACKAGE_ENV_FILE = PACKAGE_DIRECTORY / ".env" SETTINGS_DIRECTORY = HOME_DIRECTORY / ".openbb_terminal" USER_ENV_FILE = SETTINGS_DIRECTORY / ".env" diff --git a/openbb_terminal/feature_flags.py b/openbb_terminal/feature_flags.py index 6e3339cf13f..6ab15a348fb 100644 --- a/openbb_terminal/feature_flags.py +++ b/openbb_terminal/feature_flags.py @@ -11,6 +11,7 @@ import i18n # IMPORTATION INTERNAL from openbb_terminal.core.config.paths import ( MISCELLANEOUS_DIRECTORY, + PACKAGE_ENV_FILE, REPOSITORY_ENV_FILE, USER_DATA_SOURCES_DEFAULT_FILE, USER_ENV_FILE, @@ -23,6 +24,7 @@ paths_helper.init_userdata() load_dotenv(USER_ENV_FILE) load_dotenv(REPOSITORY_ENV_FILE, override=True) +load_dotenv(PACKAGE_ENV_FILE, override=True) # Retry unknown commands with `load` RETRY_WITH_LOAD = strtobool(os.getenv("OPENBB_RETRY_WITH_LOAD", "False")) @@ -93,8 +95,6 @@ TOOLBAR_HINT = strtobool(os.getenv("OPENBB_TOOLBAR_HINT", "True")) # Select language to be used USE_LANGUAGE = str(os.getenv("OPENBB_USE_LANGUAGE", "en")) -LOGGING_COMMIT_HASH = str(os.getenv("OPENBB_LOGGING_COMMIT_HASH", "REPLACE_ME")) - # File that contains a JSON dictionary of preferred sources for commands PREFERRED_DATA_SOURCE_FILE = str( os.getenv( diff --git a/openbb_terminal/loggers.py b/openbb_terminal/loggers.py index 8f37c3b1bbd..268a9315b63 100644 --- a/openbb_terminal/loggers.py +++ b/openbb_terminal/loggers.py @@ -17,7 +17,6 @@ else: WITH_GIT = True # IMPORTATION INTERNAL -import openbb_terminal.feature_flags as obbff from openbb_terminal.config_terminal import ( LOGGING_APP_NAME, LOGGING_AWS_ACCESS_KEY_ID, @@ -26,6 +25,7 @@ from openbb_terminal.config_terminal import ( LOGGING_HANDLERS, LOGGING_ROLLING_CLOCK, LOGGING_VERBOSITY, + LOGGING_COMMIT_HASH, ) from openbb_terminal.core.log.generation.settings import ( AppSettings, @@ -68,11 +68,11 @@ def get_app_id() -> str: return app_id -def get_commit_hash() -> str: +def get_commit_hash(use_env=True) -> str: """Get Commit Short Hash""" - if obbff.LOGGING_COMMIT_HASH != "REPLACE_ME": - return obbff.LOGGING_COMMIT_HASH + if use_env and LOGGING_COMMIT_HASH != "REPLACE_ME": + return LOGGING_COMMIT_HASH git_dir = Path(__file__).parent.parent.joinpath(".git") diff --git a/openbb_terminal/terminal_helper.py b/openbb_terminal/terminal_helper.py index 148d99e13fa..d765f6f9fac 100644 --- a/openbb_terminal/terminal_helper.py +++ b/openbb_terminal/terminal_helper.py @@ -16,7 +16,7 @@ import requests import matplotlib.pyplot as plt # IMPORTATION INTERNAL -from openbb_terminal import config_terminal as cfg +from openbb_terminal.config_terminal import LOGGING_APP_NAME, LOGGING_COMMIT_HASH from openbb_terminal import feature_flags as obbff from openbb_terminal import thought_of_the_day as thought from openbb_terminal.rich_config import console @@ -88,7 +88,7 @@ def update_terminal(): """Updates the terminal by running git pull in the directory. Runs poetry install if needed. """ - if not WITH_GIT or obbff.LOGGING_COMMIT_HASH != "REPLACE_ME": + if not WITH_GIT or LOGGING_COMMIT_HASH != "REPLACE_ME": console.print("This feature is not available: Git dependencies not installed.") return 0 @@ -183,7 +183,7 @@ def is_packaged_application() -> bool: bool: If the application is packaged """ - return cfg.LOGGING_APP_NAME == "gst_packaged" + return LOGGING_APP_NAME == "gst_packaged" def bootup(): diff --git a/pyproject.toml b/pyproject.toml index d14598a111e..5f24aa7fbd3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,6 +6,7 @@ authors = ["Didier Rodrigues Lopes"] packages = [ { include = "openbb_terminal" }, ] +readme = "README.md" [tool.poetry.scripts] openbb = 'openbb_terminal.terminal_controller:parse_args_and_run' diff --git a/tests/openbb_terminal/test_loggers.py b/tests/openbb_terminal/test_loggers.py index a3d1b16d735..609fe6f948b 100644 --- a/tests/openbb_terminal/test_loggers.py +++ b/tests/openbb_terminal/test_loggers.py @@ -64,7 +64,7 @@ def test_get_commit_hash(mocker, git): def test_get_commit_hash_obff(mocker): - mocker.patch("openbb_terminal.loggers.obbff") + mocker.patch("openbb_terminal.loggers.LOGGING_COMMIT_HASH", "MOCKING_COMMIT_HASH") value = loggers.get_commit_hash() assert value