diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..38e680f5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,50 @@ +#################################################### +# Use python 3.x and the latest version of alpine # +#################################################### +FROM python:3-alpine + +LABEL maintainer=peter@grainger.xyz + +################################################### +# Add all system packages relied upon by python # +################################################### +RUN apk update && \ + apk add --no-cache gcc \ + libffi-dev \ + openssl-dev \ + libxslt-dev \ + libxml2-dev \ + musl-dev \ + linux-headers + +################################################### +# Create somewhere to put the files # +################################################### +RUN mkdir -p /opt/pyHS100 +WORKDIR /opt/pyHS100 + +################################################### +# Requirements file first to help cache # +################################################### +COPY requirements.txt . +RUN pip install -r requirements.txt + +################################################### +# Install dev dependancies # +################################################### +RUN pip install pytest pytest-cov voluptuous typing + +################################################### +# Copy over the rest. # +################################################### +COPY ./ ./ + +################################################### +# Install everything to the path # +################################################### +RUN python setup.py install + +################################################### +# Run tests # +################################################### +CMD pytest diff --git a/README.md b/README.md index 615545a9..5efbc4d7 100644 --- a/README.md +++ b/README.md @@ -210,4 +210,16 @@ Hue is given in degrees (0-360) and saturation and value in percentage. print(bulb.hsv) if bulb.is_color: bulb.hsv = (180, 100, 100) # set to cyan +``` + +## Development Setup + +### Docker + +The following assumes you have a working installation of Docker. + +Set up the environment and run the tests on demand. + +```shell +docker build . -t pyhs100 && docker run -v $(PWD)/pyHS100/tests:/opt/pyHS100/pyHS100/tests pyhs100 pytest ``` \ No newline at end of file