diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b14d298 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +*.pyc +*.egg +*.egg-info +dist +eggs +build +sdist +.Python +bin/ +include/ +lib/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8f5a44f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +FROM ubuntu:xenial +ENV PYTHON_VERSIONS='python2.6 python2.7 python3.4 python3.5 python3.6' \ + OAI_SPEC_URL="https://raw.githubusercontent.com/sendgrid/sendgrid-oai/master/oai_stoplight.json" + +# install testing versions of python, including old versions, from deadsnakes +RUN set -x \ + && apt-get update \ + && apt-get install -y --no-install-recommends software-properties-common \ + && apt-add-repository -y ppa:fkrull/deadsnakes \ + && apt-get update \ + && apt-get install -y --no-install-recommends $PYTHON_VERSIONS \ + git \ + curl \ + && apt-get purge -y --auto-remove software-properties-common \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /root + +# install Prism +ADD https://raw.githubusercontent.com/stoplightio/prism/master/install.sh install.sh +RUN chmod +x ./install.sh && \ + ./install.sh && \ + rm ./install.sh + +# install pip, tox +ADD https://bootstrap.pypa.io/get-pip.py get-pip.py +RUN python2.7 get-pip.py && \ + pip install tox && \ + rm get-pip.py + +# set up default sendgrid env +WORKDIR /root/sources +RUN git clone https://github.com/sendgrid/sendgrid-python.git && \ + git clone https://github.com/sendgrid/python-http-client.git +WORKDIR /root +RUN ln -s /root/sources/sendgrid-python/sendgrid && \ + ln -s /root/sources/python-http-client/python_http_client + +COPY . . +CMD sh run.sh diff --git a/README.md b/README.md index 009e752..15b569f 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ All updates to this module is documented in our [CHANGELOG](https://github.com/s - [Usage](#usage) - [Roadmap](#roadmap) - [How to Contribute](#contribute) +- [Local set up](#local_setup) - [About](#about) - [License](#license) @@ -71,6 +72,18 @@ Quick links: - [Sign the CLA to Create a Pull Request](https://github.com/sendgrid/smtpapi-python/blob/master/CONTRIBUTING.md#cla) - [Improvements to the Codebase](https://github.com/sendgrid/smtpapi-python/blob/master/CONTRIBUTING.md#improvements-to-the-codebase) + + +# Local Setup of the project + +The simplest local development workflow is by using docker. + +> Steps + +1. Install Docker +2. Run `docker-compose build` (This builds the container) +3. Run `docker-compose up` (This runs tests by default) + # About diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..64cc37b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3' +services: + web: + build: . + volumes: + - .:/root diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..920b790 --- /dev/null +++ b/run.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +python2.7 setup.py install +python2.7 test/__init__.py