Added some CI utils.
parent
da01b5e910
commit
345dda9020
|
@ -0,0 +1,46 @@
|
||||||
|
# This file is a template, and might need editing before it works on your project.
|
||||||
|
# use the official gcc image, based on debian
|
||||||
|
# can use verions as well, like gcc:5.2
|
||||||
|
# see https://hub.docker.com/_/gcc/
|
||||||
|
image: sorose/graphics:v8
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- build
|
||||||
|
- build-docs
|
||||||
|
- deploy-docs
|
||||||
|
- test
|
||||||
|
# - review
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- apt update && apt -y install python3-pip gcc libmagickwand-dev
|
||||||
|
- rm -rf dist build docs/build openlut.egg-info
|
||||||
|
|
||||||
|
build:
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- python3 setup.py sdist #Build source distribution.
|
||||||
|
- python3 setup.py bdist_wheel #Build Linux wheel.
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- dist/*
|
||||||
|
|
||||||
|
build-docs:
|
||||||
|
stage: build-docs
|
||||||
|
script:
|
||||||
|
- ./mkDocs.sh
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- docs/build/html
|
||||||
|
|
||||||
|
deploy-docs:
|
||||||
|
stage: deploy-docs
|
||||||
|
environment:
|
||||||
|
name: Documentation
|
||||||
|
url: https://www.sofusrose.com/openlut
|
||||||
|
when: manual
|
||||||
|
|
||||||
|
# run tests using the binary built before.
|
||||||
|
test:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- python3 tests/suite.py
|
|
@ -35,7 +35,6 @@ First: **Ensure you have dependencies!!!** The pip command will break without th
|
||||||
Simply use pip: `pip3 install openlut` (pip3 denotes that you must use a Python 3 version of pip). Keep in mind, there are some external dependencies:
|
Simply use pip: `pip3 install openlut` (pip3 denotes that you must use a Python 3 version of pip). Keep in mind, there are some external dependencies:
|
||||||
* **Python 3.5**: This is Python; you need Python.
|
* **Python 3.5**: This is Python; you need Python.
|
||||||
* **gcc**: This is needed to compile the C++ extensions.
|
* **gcc**: This is needed to compile the C++ extensions.
|
||||||
* **pybind11**: This is a library needed to link the C++ extension into Python. pip version is being difficult...
|
|
||||||
* **imagemagick**: For all file IO. It's not like I was gonna write that myself :) .
|
* **imagemagick**: For all file IO. It's not like I was gonna write that myself :) .
|
||||||
|
|
||||||
*If it's breaking, try running `pip3 install -U pip setuptools`. Sometimes they are out of date.*
|
*If it's breaking, try running `pip3 install -U pip setuptools`. Sometimes they are out of date.*
|
||||||
|
@ -45,13 +44,13 @@ Installing Dependencies
|
||||||
-----
|
-----
|
||||||
Not Difficult, I promise!
|
Not Difficult, I promise!
|
||||||
|
|
||||||
On Debian/Ubuntu: `sudo apt-get install python3-pip gcc pybind11-dev libmagickwand-dev`
|
On Debian/Ubuntu: `sudo apt-get install python3-pip gcc libmagickwand-dev`
|
||||||
|
|
||||||
On Mac: `brew install python3 gcc pybind11 imagemagick`
|
On Mac: `brew install python3 gcc imagemagick`
|
||||||
* You will need Homebrew ( copy/paste a command from http://brew.sh/ to install ) and XCode Command Line Tools for gcc (it should prompt you to install this).
|
* You will need Homebrew ( copy/paste a command from http://brew.sh/ to install ) and XCode Command Line Tools for gcc (it should prompt you to install this).
|
||||||
* If this doesn't install pip, run `brew install python3; curl https://bootstrap.pypa.io/get-pip.py | python3`
|
* If this doesn't install pip, run `brew install python3; curl https://bootstrap.pypa.io/get-pip.py | python3`
|
||||||
|
|
||||||
On Other: You need **python 3.5**, pip, a newer version (must support C++14) of **gcc**, and pybind11 in your `includes`.
|
On Other: You need **python 3.5**, pip, a newer version (must support C++14) of **gcc**.
|
||||||
|
|
||||||
|
|
||||||
Basic Library Usage
|
Basic Library Usage
|
||||||
|
|
|
@ -63,9 +63,9 @@ author = u'Sofus Rose'
|
||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = u'0.2.1'
|
version = u'0.2.3'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = u'0.2.1'
|
release = u'0.2.3'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
|
|
@ -2,11 +2,21 @@
|
||||||
|
|
||||||
REMOTE=sofus@wakingnexus
|
REMOTE=sofus@wakingnexus
|
||||||
|
|
||||||
rsync -avzP build/html/* $REMOTE:~/openlut/
|
#Remove the old docs.
|
||||||
|
ssh $REMOTE 'bash -s' << 'ENDSSH'
|
||||||
|
|
||||||
#ssh $REMOTE 'bash -s' << 'ENDSSH'
|
rm -rf /var/www/openlut/*
|
||||||
#
|
|
||||||
#cd /var/www/openlut
|
ENDSSH
|
||||||
#chown -R www-data:www-data *
|
|
||||||
#
|
#Sync over the new docs.
|
||||||
#ENDSSH
|
rsync -avzP build/html/* $REMOTE:/var/www/openlut/
|
||||||
|
|
||||||
|
#Set strong permissions.
|
||||||
|
ssh $REMOTE 'bash -s' << 'ENDSSH'
|
||||||
|
|
||||||
|
chown -R sofus:www-data /var/www/openlut/*
|
||||||
|
find /var/www/openlut -type f -exec chmod 0640 {} \;
|
||||||
|
find /var/www/openlut -type d -exec chmod 2750 {} \;
|
||||||
|
|
||||||
|
ENDSSH
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
pandoc --from=markdown --to=rst --output=README.rst README.md
|
||||||
|
|
||||||
|
make -C doc html
|
|
@ -1,2 +1,2 @@
|
||||||
[metadata]
|
[metadata]
|
||||||
description-file = README.md
|
description-file = README.rst
|
||||||
|
|
12
setup.py
12
setup.py
|
@ -2,14 +2,18 @@
|
||||||
|
|
||||||
import sys, os
|
import sys, os
|
||||||
import os.path as path
|
import os.path as path
|
||||||
|
from os.path import join
|
||||||
|
|
||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
from setuptools import Extension
|
from setuptools import Extension
|
||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
#pybind11, a dependency, can report its own includes!
|
#pybind11, a dep of openlut, can report its own includes for gcc compilation!
|
||||||
import pybind11
|
import pybind11
|
||||||
|
|
||||||
|
def read(fname):
|
||||||
|
return open(join(path.dirname(__file__), fname)).read()
|
||||||
|
|
||||||
#Make sure we're using gcc.
|
#Make sure we're using gcc.
|
||||||
os.environ["CC"] = "g++"
|
os.environ["CC"] = "g++"
|
||||||
os.environ["CXX"] = "g++"
|
os.environ["CXX"] = "g++"
|
||||||
|
@ -19,15 +23,17 @@ link_args = ['-fopenmp']
|
||||||
|
|
||||||
olOpt = Extension( 'openlut.lib.olOpt',
|
olOpt = Extension( 'openlut.lib.olOpt',
|
||||||
sources = ['openlut/lib/olOpt.cpp'],
|
sources = ['openlut/lib/olOpt.cpp'],
|
||||||
include_dirs=[pybind11.get_include()], #Include pybind11.
|
include_dirs=[pybind11.get_include()], #Include pybind11 from its pip package.
|
||||||
language = 'c++',
|
language = 'c++',
|
||||||
extra_compile_args = cpp_args,
|
extra_compile_args = cpp_args,
|
||||||
extra_link_args = cpp_args
|
extra_link_args = cpp_args
|
||||||
)
|
)
|
||||||
|
|
||||||
setup( name = 'openlut',
|
setup( name = 'openlut',
|
||||||
version = '0.2.1',
|
version = '0.2.4',
|
||||||
description = 'OpenLUT is a practical color management library.',
|
description = 'OpenLUT is a practical color management library.',
|
||||||
|
long_description = read('README.rst'),
|
||||||
|
|
||||||
author = 'Sofus Rose',
|
author = 'Sofus Rose',
|
||||||
author_email = 'sofus@sofusrose.com',
|
author_email = 'sofus@sofusrose.com',
|
||||||
url = 'https://www.github.com/so-rose/openlut',
|
url = 'https://www.github.com/so-rose/openlut',
|
||||||
|
|
Loading…
Reference in New Issue