Skip to content

Commit 47c1613

Browse files
authored
Merge pull request shimat#814 from shimat/ubuntu16_github_actions
Ubuntu 16 CI (GitHub Actions)
2 parents 0dc9dec + 77e6c81 commit 47c1613

File tree

6 files changed

+294
-2
lines changed

6 files changed

+294
-2
lines changed

.github/workflows/ubuntu16.yml

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
name: Ubuntu 16.04
2+
3+
on: [push]
4+
5+
env:
6+
DEBIAN_FRONTEND: noninteractive
7+
OPENCV_VERSION: 4.2.0
8+
9+
jobs:
10+
build:
11+
12+
runs-on: ubuntu-16.04
13+
14+
steps:
15+
- uses: actions/checkout@v1
16+
with:
17+
fetch-depth: 1
18+
19+
- name: Install dependencies
20+
run: |
21+
pwd
22+
echo ${GITHUB_WORKSPACE}
23+
current_path=$(pwd)
24+
sudo apt-get update -y
25+
sudo apt-get install -y wget unzip build-essential checkinstall cmake pkg-config yasm git gfortran libjpeg8-dev libpng-dev software-properties-common
26+
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
27+
sudo apt-get update -y && sudo apt-get install -y libjasper1 libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev
28+
cd /usr/include/linux
29+
sudo ln -s -f ../libv4l1-videodev.h videodev.h
30+
cd $current_path
31+
sudo apt-get install -y libgtk2.0-dev libtbb-dev libatlas-base-dev libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev libavresample-dev x264 v4l-utils libwebp-dev tesseract-ocr libtesseract-dev libleptonica-dev
32+
33+
- name: Cache OpenCV
34+
id: opencv-cache
35+
uses: actions/cache@v1
36+
with:
37+
path: /home/runner/work/opencvsharp/opencvsharp/opencv_ubuntu/
38+
key: opencv-4.2.0-rev1
39+
40+
- name: Build OpenCV
41+
if: steps.opencv-cache.outputs.cache-hit != 'true'
42+
run: |
43+
wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip -Oopencv-${OPENCV_VERSION}.zip && unzip opencv-${OPENCV_VERSION}.zip
44+
wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip -Oopencv_contrib-${OPENCV_VERSION}.zip && unzip opencv_contrib-${OPENCV_VERSION}.zip
45+
cd opencv-${OPENCV_VERSION} && mkdir build && cd build
46+
cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${OPENCV_VERSION}/modules -DBUILD_SHARED_LIBS=OFF -DENABLE_CXX11=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_JAVA=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_ts=OFF -DBUILD_opencv_js=OFF -DBUILD_opencv_app=OFF -DWITH_GSTREAMER=OFF -DOPENCV_ENABLE_NONFREE=ON -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/opencv_ubuntu ..
47+
make -j2
48+
make install
49+
sudo ldconfig
50+
cd ${GITHUB_WORKSPACE}
51+
ls
52+
53+
- name: Build OpenCvSharpExtern
54+
run: |
55+
ls ${GITHUB_WORKSPACE}/opencv_ubuntu
56+
echo "-----"
57+
ls ${GITHUB_WORKSPACE}/opencv_ubuntu/lib
58+
echo "-----"
59+
mkdir src/build && cd $_
60+
cmake -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/opencv_ubuntu ..
61+
make -j2
62+
ls
63+
ls OpenCvSharpExtern
64+
cp OpenCvSharpExtern/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/nuget/
65+
66+
- name: Check OpenCvSharpExtern
67+
run: |
68+
cd ${GITHUB_WORKSPACE}/nuget/
69+
ldd libOpenCvSharpExtern.so
70+
nm libOpenCvSharpExtern.so
71+
echo -ne "#include <stdio.h> \n int core_Mat_sizeof(); int main(){ int i = core_Mat_sizeof(); printf(\"sizeof(Mat) = %d\", i); return 0; }" > test.c
72+
gcc -I./ -L./ test.c -o test -lOpenCvSharpExtern
73+
LD_LIBRARY_PATH=. ./test
74+
75+
- name: Install .NET Core
76+
run: |
77+
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
78+
sudo dpkg -i packages-microsoft-prod.deb
79+
sudo add-apt-repository universe
80+
sudo apt-get update
81+
sudo apt-get install -y apt-transport-https
82+
sudo apt-get update
83+
sudo apt-get install -y dotnet-sdk-3.1 libc6-dev libgdiplus
84+
85+
- name: Create NuGet package
86+
env:
87+
BETA: "-beta1"
88+
run: |
89+
yyyymmdd=`date '+%Y%m%d'`
90+
echo $yyyymmdd
91+
sed -E --in-place=.bak "s/<version>[0-9]\.[0-9]{1,2}\.[0-9]{1,2}.[0-9]{8}(-beta[0-9]*)?<\/version>/<version>${OPENCV_VERSION}.${yyyymmdd}${BETA}<\/version>/" ${GITHUB_WORKSPACE}/nuget/OpenCvSharp4.runtime.ubuntu.16.04-x64.nuspec
92+
cat ${GITHUB_WORKSPACE}/nuget/OpenCvSharp4.runtime.ubuntu.16.04-x64.nuspec
93+
dotnet pack ${GITHUB_WORKSPACE}/nuget/OpenCvSharp4.runtime.ubuntu.16.04-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_ubuntu
94+
ls ${GITHUB_WORKSPACE}/artifacts_ubuntu
95+
96+
- uses: actions/upload-artifact@v1
97+
with:
98+
name: artifacts_ubuntu_16
99+
path: artifacts_ubuntu
100+
101+
- name: Test
102+
run: |
103+
pwd
104+
ls
105+
cd ${GITHUB_WORKSPACE}/test/OpenCvSharp.Tests
106+
ls
107+
dotnet build -c Release -f netcoreapp3.0
108+
cp ${GITHUB_WORKSPACE}/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/test/OpenCvSharp.Tests/bin/Release/netcoreapp3.0/
109+
cp ${GITHUB_WORKSPACE}/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/test/OpenCvSharp.Tests/
110+
sudo cp ${GITHUB_WORKSPACE}/nuget/libOpenCvSharpExtern.so /usr/lib/
111+
ls ${GITHUB_WORKSPACE}/test/OpenCvSharp.Tests/bin/Release/netcoreapp3.0/
112+
ls
113+
LD_LIBRARY_PATH=. dotnet test OpenCvSharp.Tests.csproj -c Release -f netcoreapp3.0 --runtime ubuntu.18.04-x64 --logger "trx;LogFileName=test-results.trx"
114+
ls
115+
ls TestResults
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
FROM gcr.io/google-appengine/aspnetcore:2.1
2+
3+
ENV OPENCV_VERSION=4.2.0
4+
5+
# Install opencv dependencies
6+
RUN apt-get update && apt-get install -y \
7+
apt-transport-https \
8+
software-properties-common \
9+
wget \
10+
unzip \
11+
curl \
12+
ca-certificates \
13+
build-essential \
14+
cmake \
15+
git \
16+
gfortran \
17+
libjpeg8-dev \
18+
libpng-dev \
19+
software-properties-common
20+
RUN add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" && apt-get update && apt-get install -y \
21+
libjasper1 \
22+
libtiff-dev \
23+
libavcodec-dev \
24+
libavformat-dev \
25+
libswscale-dev \
26+
libdc1394-22-dev \
27+
libxine2-dev \
28+
libv4l-dev
29+
RUN cd /usr/include/linux && ln -s -f ../libv4l1-videodev.h videodev.h && cd ~ && apt-get install -y \
30+
libgtk2.0-dev libtbb-dev qt5-default \
31+
libatlas-base-dev \
32+
libfaac-dev \
33+
libmp3lame-dev \
34+
libtheora-dev \
35+
libvorbis-dev \
36+
libxvidcore-dev \
37+
libopencore-amrnb-dev \
38+
libopencore-amrwb-dev \
39+
libavresample-dev \
40+
x264 \
41+
v4l-utils \
42+
libwebp-dev \
43+
tesseract-ocr libtesseract-dev libleptonica-dev
44+
45+
# Setup OpenCV source
46+
RUN wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
47+
unzip ${OPENCV_VERSION}.zip && \
48+
rm ${OPENCV_VERSION}.zip && \
49+
mv opencv-${OPENCV_VERSION} opencv
50+
51+
# Setup opencv-contrib Source
52+
RUN wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
53+
unzip ${OPENCV_VERSION}.zip && \
54+
rm ${OPENCV_VERSION}.zip && \
55+
mv opencv_contrib-${OPENCV_VERSION} opencv_contrib
56+
57+
# Build OpenCV
58+
RUN cd opencv && mkdir build && cd build && \
59+
cmake \
60+
-D OPENCV_EXTRA_MODULES_PATH=/opencv_contrib/modules \
61+
-D CMAKE_BUILD_TYPE=RELEASE \
62+
-D BUILD_SHARED_LIBS=OFF \
63+
-D ENABLE_CXX11=ON \
64+
-D BUILD_EXAMPLES=OFF \
65+
-D BUILD_DOCS=OFF \
66+
-D BUILD_PERF_TESTS=OFF \
67+
-D BUILD_TESTS=OFF \
68+
-D BUILD_JAVA=OFF \
69+
-D BUILD_opencv_app=OFF \
70+
-D BUILD_opencv_java=OFF \
71+
-D BUILD_opencv_python=OFF \
72+
-D BUILD_opencv_ts=OFF \
73+
-D BUILD_opencv_js=OFF \
74+
-D WITH_GSTREAMER=OFF \
75+
-D OPENCV_ENABLE_NONFREE=ON \
76+
.. && make -j2 && make install && ldconfig
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
FROM gcr.io/google-appengine/aspnetcore:2.1
2+
3+
ENV OPENCV_VERSION=4.2.0
4+
5+
# Install opencv dependencies
6+
RUN apt-get update && apt-get install -y \
7+
apt-transport-https \
8+
software-properties-common \
9+
wget \
10+
unzip \
11+
curl \
12+
ca-certificates \
13+
build-essential \
14+
cmake \
15+
git \
16+
gfortran \
17+
libjpeg8-dev \
18+
libpng-dev \
19+
software-properties-common
20+
RUN add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" && apt-get update && apt-get install -y \
21+
libjasper1 \
22+
libtiff-dev \
23+
libavcodec-dev \
24+
libavformat-dev \
25+
libswscale-dev \
26+
libdc1394-22-dev \
27+
libxine2-dev \
28+
libv4l-dev
29+
RUN cd /usr/include/linux && ln -s -f ../libv4l1-videodev.h videodev.h && cd ~ && apt-get install -y \
30+
libgtk2.0-dev libtbb-dev qt5-default \
31+
libatlas-base-dev \
32+
libfaac-dev \
33+
libmp3lame-dev \
34+
libtheora-dev \
35+
libvorbis-dev \
36+
libxvidcore-dev \
37+
libopencore-amrnb-dev \
38+
libopencore-amrwb-dev \
39+
libavresample-dev \
40+
x264 \
41+
v4l-utils \
42+
libwebp-dev \
43+
tesseract-ocr libtesseract-dev libleptonica-dev
44+
45+
# Setup OpenCV source
46+
RUN wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
47+
unzip ${OPENCV_VERSION}.zip && \
48+
rm ${OPENCV_VERSION}.zip && \
49+
mv opencv-${OPENCV_VERSION} opencv
50+
51+
# Setup opencv-contrib Source
52+
RUN wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
53+
unzip ${OPENCV_VERSION}.zip && \
54+
rm ${OPENCV_VERSION}.zip && \
55+
mv opencv_contrib-${OPENCV_VERSION} opencv_contrib
56+
57+
# Build OpenCV
58+
RUN cd opencv && mkdir build && cd build && \
59+
cmake \
60+
-D OPENCV_EXTRA_MODULES_PATH=/opencv_contrib/modules \
61+
-D CMAKE_BUILD_TYPE=RELEASE \
62+
-D BUILD_SHARED_LIBS=OFF \
63+
-D ENABLE_CXX11=ON \
64+
-D BUILD_EXAMPLES=OFF \
65+
-D BUILD_DOCS=OFF \
66+
-D BUILD_PERF_TESTS=OFF \
67+
-D BUILD_TESTS=OFF \
68+
-D BUILD_JAVA=OFF \
69+
-D BUILD_opencv_app=OFF \
70+
-D BUILD_opencv_java=OFF \
71+
-D BUILD_opencv_python=OFF \
72+
-D BUILD_opencv_ts=OFF \
73+
-D BUILD_opencv_js=OFF \
74+
-D WITH_GSTREAMER=OFF \
75+
-D OPENCV_ENABLE_NONFREE=ON \
76+
.. && make -j2 && make install && ldconfig
77+
78+
WORKDIR /
79+
80+
# Download OpenCvSharp
81+
RUN git clone https://github.com/shimat/opencvsharp.git
82+
RUN cd opencvsharp && git fetch --all --tags --prune
83+
84+
# Build the Extern lib.
85+
WORKDIR /opencvsharp/src
86+
RUN mkdir /opencvsharp/make
87+
RUN cd /opencvsharp/make && cmake -D CMAKE_INSTALL_PREFIX=/opencvsharp/make /opencvsharp/src && make -j2 && make install
88+
RUN ls /opencvsharp/make
89+
RUN ls /opencvsharp/make/OpenCvSharpExtern
90+
91+
# Test the Extern lib.
92+
WORKDIR /
93+
RUN cp /opencvsharp/make/OpenCvSharpExtern/libOpenCvSharpExtern.so /
94+
RUN ldd libOpenCvSharpExtern.so
95+
RUN echo "#include <stdio.h> \n int core_Mat_sizeof(); int main(){ int i = core_Mat_sizeof(); printf(\"sizeof(Mat) = %d\", i); return 0; }" > test.c
96+
RUN gcc -I./ -L./ test.c -o test -lOpenCvSharpExtern
97+
RUN LD_LIBRARY_PATH=. ./test

docker/command_sample.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
docker build -t shimat/appengine-aspnetcore2.1-opencv4.2.0 .
2+
3+
docker login
4+
docker push shimat/appengine-aspnetcore2.1-opencv4.2.0

tool/OpenCvSharp.ReleaseMaker/MainForm.Designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)