diff --git a/apps/cic-cache/.gitlab-ci.yml b/apps/cic-cache/.gitlab-ci.yml index 8cbce963..1234a87c 100644 --- a/apps/cic-cache/.gitlab-ci.yml +++ b/apps/cic-cache/.gitlab-ci.yml @@ -1,7 +1,7 @@ .cic_cache_variables: variables: APP_NAME: cic-cache - DOCKERFILE_PATH: docker/Dockerfile + DOCKERFILE_PATH: docker/Dockerfile_ci CONTEXT: apps/$APP_NAME build-mr-cic-cache: @@ -14,6 +14,31 @@ build-mr-cic-cache: - apps/cic-cache/**/* when: always +test-mr-cic-eth: + stage: test + extends: + - .cic_eth_variables + cache: + key: + files: + - test_requirements.txt + paths: + - /root/.cache/pip + image: $MR_IMAGE_TAG + script: + - cd apps/$APP_NAME/ + - > + pip install --extra-index-url https://pip.grassrootseconomics.net:8433 + --extra-index-url https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple + -r test_requirements.txt + - export PYTHONPATH=. && pytest -x --cov=cic_cache --cov-fail-under=90 --cov-report term-missing tests + needs: ["build-mr-cic-eth"] + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + changes: + - apps/cic-eth/**/* + when: always + build-push-cic-cache: extends: - .py_build_push diff --git a/apps/cic-cache/docker/Dockerfile_ci b/apps/cic-cache/docker/Dockerfile_ci new file mode 100644 index 00000000..9f49cac0 --- /dev/null +++ b/apps/cic-cache/docker/Dockerfile_ci @@ -0,0 +1,37 @@ +# syntax = docker/dockerfile:1.2 +FROM registry.gitlab.com/grassrootseconomics/cic-base-images:python-3.8.6-dev-55da5f4e as dev + +# RUN pip install $pip_extra_index_url_flag cic-base[full_graph]==0.1.2b9 + +COPY requirements.txt . +#RUN pip install $pip_extra_index_url_flag -r test_requirements.txt +#RUN pip install $pip_extra_index_url_flag . +#RUN pip install .[server] + +ARG EXTRA_INDEX_URL="https://pip.grassrootseconomics.net:8433" +ARG GITLAB_PYTHON_REGISTRY="https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple" +RUN pip install --index-url https://pypi.org/simple \ + --extra-index-url $GITLAB_PYTHON_REGISTRY --extra-index-url $EXTRA_INDEX_URL \ + -r requirements.txt + +COPY . . + +RUN python setup.py install + +# ini files in config directory defines the configurable parameters for the application +# they can all be overridden by environment variables +# to generate a list of environment variables from configuration, use: confini-dump -z (executable provided by confini package) +COPY config/ /usr/local/etc/cic-cache/ + +# for db migrations +RUN git clone https://github.com/vishnubob/wait-for-it.git /usr/local/bin/wait-for-it/ +COPY cic_cache/db/migrations/ /usr/local/share/cic-cache/alembic/ + +COPY /docker/start_tracker.sh ./start_tracker.sh +COPY /docker/db.sh ./db.sh +RUN chmod 755 ./*.sh +# Tracker +# ENTRYPOINT ["/usr/local/bin/cic-cache-tracker", "-vv"] +# Server +# ENTRYPOINT [ "/usr/local/bin/uwsgi", "--wsgi-file", "/usr/local/lib/python3.8/site-packages/cic_cache/runnable/server.py", "--http", ":80", "--pyargv", "-vv" ] +ENTRYPOINT []