forked from fredrikaverpil/oiio-python
-
Notifications
You must be signed in to change notification settings - Fork 1
132 lines (124 loc) · 5.54 KB
/
build.yml
File metadata and controls
132 lines (124 loc) · 5.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Build openimageio for python
on:
pull_request:
branches:
- release
release:
types: [published]
jobs:
build:
name: Test on ${{ matrix.os }} with Python ${{ matrix.python }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python_version_major: ['3']
python_version_minor: ['7']
os: ['ubuntu-16.04']
oiio_version: ["2.2.10.0"]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python_version_major }}.${{ matrix.python_version_minor }}
architecture: x64
- name: build oiio
run: |
sudo apt-get install libboost-all-dev
sudo apt-get install libjpeg-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libpng-dev
sudo apt-get install libtiff-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libraw-dev
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update -y
sudo apt-get install g++-7 -y
git clone https://github.com/OpenImageIO/oiio.git
pip3 install "pybind11[global]"
pip3 install numpy
cd oiio
git checkout "v${{ matrix.oiio_version }}"
mkdir build
cd build
cmake .. -DCMAKE_CXX_FLAGS="-Wno-error=unused-variable"
make VERBOSE=1 STOP_ON_WARNING=0 LINKSTATIC=1
sudo make install
shell: bash
env:
OIIO_PYTHON_VERSION: ${{ matrix.python_version_major }}.${{ matrix.python_version_minor }}
- name: Inject variable values into setup.py
run: |
cd src/python
sed -i'' 's/PACKAGE_VERSION/${{ matrix.oiio_version }}/g' setup.py
sed -i'' 's/PYTHON_VERSION/${{ matrix.python_version_major }}.${{ matrix.python_version_minor }}/g' setup.py
sed -i'' 's/OS_NAME/Microsoft :: POSIX :: Linux/g' setup.py
cat setup.py
mkdir ${GITHUB_WORKSPACE}/artifacts
- name: Copy files into oiio Python package
run: |
cp oiio/build/lib/python/site-packages/*.so src/python/oiio
# - name: Python wheels manylinux build
# uses: RalfG/python-wheels-manylinux-build@v0.3.3
# with:
# python-versions: 'cp37-cp37m'
# package-path: 'src/python'
# pip-wheel-args: '-w /github/workspace/artifacts'
- name: Copy Files To Zip
run: |
SOURCE="oiio/build"
DEST="${GITHUB_WORKSPACE}/artifacts"
INSTALL_ROOT="/usr/local"
if [ ! -d $DEST ]; then
mkdir $DEST
fi
for root in $SOURCE/bin $SOURCE/lib $SOURCE/include; do
for file in $(find $root -type f ); do
echo "$file"
src_file="${file/$SOURCE/}"
if [ -f $INSTALL_ROOT/$src_file ]; then
echo "$INSTALL_ROOT/$src_file -> $DEST"
cp $INSTALL_ROOT/$src_file --parents $DEST
fi
done
done
mkdir -p $DEST/lib/python3.7/site-packages
if [ -f $INSTALL_ROOT/lib/python3.7/site-packages/OpenImageIO.so ]; then
cp $INSTALL_ROOT/lib/python3.7/site-packages/OpenImageIO.so $DEST/lib/python3.7/site-packages/OpenImageIO.so
else
cp oiio/build/lib/python/site-packages/OpenImageIO.so $DEST/lib/python3.7/site-packages/OpenImageIO.so
fi
- name: Build wheel
id: build-wheel
run: |
export DIST_DIR="${GITHUB_WORKSPACE}/artifacts"
cd src/python
python${{ matrix.python_version_major }}.${{ matrix.python_version_minor }} -m pip install -U pip
pip${{ matrix.python_version_major }}.${{ matrix.python_version_minor }} install -U setuptools wheel auditwheel
python3 setup.py bdist_wheel --python-tag=cp${{ matrix.python_version_major }}${{ matrix.python_version_minor }} --plat-name=linux_x86_64 --dist-dir="$DIST_DIR"
cd $DIST_DIR
echo "Dest Dir"
ls -lah
# echo "auditwheel"
# auditwheel repair "oiio-${{ matrix.oiio_version }}-py${{ matrix.python_version_major }}-none-any.whl"
# auditwheel repair "oiio-${{ matrix.oiio_version }}-cp${{ matrix.python_version_major }}${{ matrix.python_version_minor }}-none-linux_x86_64.whl"
ls -lah
zip -r "oiio-${{ matrix.oiio_version }}-py${{ matrix.python_version_major }}.zip" ./*
echo ::set-output name=asset-name::oiio-${{ matrix.oiio_version }}-py${{ matrix.python_version_major }}.zip
echo ::set-output name=asset-path::${GITHUB_WORKSPACE}/artifacts/oiio-${{ matrix.oiio_version }}-py${{ matrix.python_version_major }}.zip
- name: Generate Upload URL
id: gen-upload-url
run: |
sudo apt-get install jq;
RELEASE_ID=$(jq --raw-output '.release.id' $GITHUB_EVENT_PATH);
echo ::set-output name=upload-url::https://uploads.github.com/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.gen-upload-url.outputs.upload-url }}?name=${{ steps.build-wheel.outputs.asset-name }}
asset_path: ${{ steps.build-wheel.outputs.asset-path }}
asset_name: ${{ steps.build-wheel.outputs.asset-name }}
asset_content_type: application/zip