From 91440516ff417c6ae2dd16711e00e2048a17d0fc Mon Sep 17 00:00:00 2001 From: Arnav Choudhury Date: Thu, 17 Sep 2020 16:34:18 +0530 Subject: [PATCH 1/2] Added a github workflow option for CI --- hooks/post_gen_project.py | 7 ------- tests/test_cookiecutter_generation.py | 4 ++-- {{cookiecutter.project_slug}}/.github/dependabot.yml | 7 +++++++ .../.github/workflows/{.github-ci.yml => github-ci.yml} | 0 4 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 {{cookiecutter.project_slug}}/.github/dependabot.yml rename {{cookiecutter.project_slug}}/.github/workflows/{.github-ci.yml => github-ci.yml} (100%) diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py index 5dbc7b12b..ede14c324 100644 --- a/hooks/post_gen_project.py +++ b/hooks/post_gen_project.py @@ -123,10 +123,6 @@ def remove_dotgitlabciyml_file(): os.remove(".gitlab-ci.yml") -# def remove_dotgithubciyml_file(): -# os.remove(".github-ci.yml") - - def remove_dotgithub_folder(): shutil.rmtree(".github") @@ -403,9 +399,6 @@ def main(): if "{{ cookiecutter.ci_tool }}".lower() != "gitlab": remove_dotgitlabciyml_file() - # if "{{ cookiecutter.ci_tool }}".lower() != "github": - # remove_dotgithubciyml_file() - if "{{ cookiecutter.ci_tool }}".lower() != "github": remove_dotgithub_folder() diff --git a/tests/test_cookiecutter_generation.py b/tests/test_cookiecutter_generation.py index 172f50ec9..4c681f6c9 100755 --- a/tests/test_cookiecutter_generation.py +++ b/tests/test_cookiecutter_generation.py @@ -10,7 +10,6 @@ from binaryornot.check import is_binary PATTERN = r"{{(\s?cookiecutter)[.](.*?)}}" RE_OBJ = re.compile(PATTERN) - @pytest.fixture def context(): return { @@ -139,6 +138,7 @@ def check_paths(paths): @pytest.mark.parametrize("context_override", SUPPORTED_COMBINATIONS, ids=_fixture_id) def test_project_generation(cookies, context, context_override): """Test that project is generated and fully rendered.""" + result = cookies.bake(extra_context={**context, **context_override}) assert result.exit_code == 0 assert result.exception is None @@ -245,7 +245,7 @@ def test_github_invokes_flake8_and_pytest( assert result.project.basename == context["project_slug"] assert result.project.isdir() - with open(f"{result.project}/.github/workflows/.github-ci.yml", "r") as github_yml: + with open(f"{result.project}/.github/workflows/github-ci.yml", "r") as github_yml: try: github_config = yaml.safe_load(github_yml) assert github_config["flake8"]["script"] == ["flake8"] diff --git a/{{cookiecutter.project_slug}}/.github/dependabot.yml b/{{cookiecutter.project_slug}}/.github/dependabot.yml new file mode 100644 index 000000000..8e8ac8663 --- /dev/null +++ b/{{cookiecutter.project_slug}}/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: + # Update Github actions in workflows + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/{{cookiecutter.project_slug}}/.github/workflows/.github-ci.yml b/{{cookiecutter.project_slug}}/.github/workflows/github-ci.yml similarity index 100% rename from {{cookiecutter.project_slug}}/.github/workflows/.github-ci.yml rename to {{cookiecutter.project_slug}}/.github/workflows/github-ci.yml From bff90c90237430131e345a571d9f956b79b4037a Mon Sep 17 00:00:00 2001 From: Arnav Choudhury Date: Thu, 17 Sep 2020 16:38:38 +0530 Subject: [PATCH 2/2] Added a github workflow option for CI --- .../compose/local/docs/Dockerfile | 74 +++++-------------- 1 file changed, 20 insertions(+), 54 deletions(-) diff --git a/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile b/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile index f6badd1f4..7736777b3 100644 --- a/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile +++ b/{{cookiecutter.project_slug}}/compose/local/docs/Dockerfile @@ -1,62 +1,28 @@ -# Python build stage -FROM python:3.8-slim-buster as python-build-stage +FROM python:3.8-slim-buster -ENV PYTHONDONTWRITEBYTECODE 1 - - - -RUN apt-get update && apt-get install --no-install-recommends -y \ - # dependencies for building Python packages - build-essential \ - # psycopg2 dependencies - libpq-dev \ - # cleaning up unused files - && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ - && rm -rf /var/lib/apt/lists/* - - -# Requirements are installed here to ensure they will be cached. -COPY ./requirements /requirements - -# create python dependency wheels -RUN pip wheel --no-cache-dir --no-deps --use-feature=2020-resolver --wheel-dir /usr/src/app/wheels \ - -r /requirements/local.txt -r /requirements/production.txt \ - && rm -rf /requirements - - -# Python 'run' stage -FROM python:3.8-slim-buster as python-run-stage - -ARG BUILD_ENVIRONMENT ENV PYTHONUNBUFFERED 1 ENV PYTHONDONTWRITEBYTECODE 1 +RUN apt-get update \ + # dependencies for building Python packages + && apt-get install -y build-essential \ + # psycopg2 dependencies + && apt-get install -y libpq-dev \ + # Translations dependencies + && apt-get install -y gettext \ + # Uncomment below lines to enable Sphinx output to latex and pdf + # && apt-get install -y texlive-latex-recommended \ + # && apt-get install -y texlive-fonts-recommended \ + # && apt-get install -y texlive-latex-extra \ + # && apt-get install -y latexmk \ + # cleaning up unused files + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ + && rm -rf /var/lib/apt/lists/* - -RUN apt-get update && apt-get install --no-install-recommends -y \ - # dependencies for building Python packages - build-essential \ - # psycopg2 dependencies - libpq-dev \ - # Translations dependencies - gettext \ - # Uncomment below lines to enable Sphinx output to latex and pdf - # texlive-latex-recommended \ - # texlive-fonts-recommended \ - # texlive-latex-extra \ - # latexmk \ - # cleaning up unused files - && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ - && rm -rf /var/lib/apt/lists/* - - -# copy python dependency wheels from python-build-stage -COPY --from=python-build-stage /usr/src/app/wheels /wheels - -# use wheels to install python dependencies -RUN pip install --no-cache /wheels/* \ - && rm -rf /wheels - +# Requirements are installed here to ensure they will be cached. +COPY ./requirements /requirements +# All imports needed for autodoc. +RUN pip install -r /requirements/local.txt -r /requirements/production.txt WORKDIR /docs