Skip to content

Commit 4d18d36

Browse files
committed
chore(CI): complete refactor
1 parent 7fa16fe commit 4d18d36

11 files changed

Lines changed: 225 additions & 193 deletions

File tree

.github/actions/install-opencv.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: "Build and Install Static OpenCV"
2+
3+
env:
4+
OPENCV_VERSION: "4.8.0"
5+
ZLIB_VERSION: "1.2.13"
6+
7+
runs:
8+
steps:
9+
- name: Check cache
10+
id: cache
11+
uses: actions/cache@v2
12+
with:
13+
path: opencv_build
14+
key: opencv-${{ env.OPENCV_VERSION }}
15+
16+
- name: Build
17+
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
18+
run: |
19+
sudo apt-get install -y curl g++ cmake ninja-build libgtk-3-dev
20+
21+
mkdir -p opencv_build/{opencv,zlib}
22+
23+
# OpenCV
24+
curl -L "https://github.com/opencv/opencv/archive/refs/tags/${OPENCV_VERSION}.tar.gz" | tar -xz
25+
cmake -B opencv_build/opencv -S "opencv-${OPENCV_VERSION}" -GNinja \
26+
-DBUILD_SHARED_LIBS=OFF -DOPENCV_GENERATE_PKGCONFIG=YES \
27+
-DBUILD_LIST=videoio -WITH_V4L=ON \
28+
-DWITH_JPEG=OFF -DWITH_PNG=OFF -DWITH_TIFF=OFF -DWITH_WEBP=OFF -DWITH_OPENJPEG=OFF -DWITH_JASPER=OFF -DWITH_OPENEXR=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_PFM=OFF \
29+
-DWITH_FFMPEG=FALSE -DWITH_GSTREAMER=OFF -DWITH_1394=OFF -DDVIDEOIO_ENABLE_PLUGINS=OFF -DWITH_ANDROID_MEDIANDK=OFF \
30+
-DWITH_GTK=OFF -DHIGHGUI_ENABLE_PLUGINS=OFF -DWITH_VTK=OFF \
31+
-DWITH_PROTOBUF=OFF -DOPENCV_DNN_OPENCL=OFF \
32+
-DWITH_VA_INTEL=OFF -DWITH_OPENCL=OFF -DWITH_OPENCL_SVM=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCL_D3D11_NV=OFF \
33+
-DWITH_IPP=OFF -DWITH_CAROTENE=OFF -DWITH_CPUFEATURES=OFF -DWITH_EIGEN=OFF -DWITH_OPENVX=OFF -DWITH_DIRECTX=OFF -DWITH_VA=OFF -DWITH_LAPACK=OFF -DWITH_QUIRC=OFF
34+
ninja -C opencv_build/opencv
35+
36+
# zlib
37+
curl -L "https://github.com/madler/zlib/archive/refs/tags/v${ZLIB_VERSION}.tar.gz" | tar -xz
38+
cmake -B opencv_build/zlib -S "zlib-${ZLIB_VERSION}" -GNinja
39+
ninja -C opencv_build/zlib
40+
41+
- name: Install
42+
run: |
43+
ninja install -C opencv_build/opencv
44+
ninja install -C opencv_build/zlib
45+

.github/bot_comment/ci_fail.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

.github/bot_comment/ci_success.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

.github/workflows/arm.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
workflow_call:
66

77
env:
8-
OPENCV_TINY_VERSION: "4.8.0"
8+
OPENCV_VERSION: "4.8.0"
99

1010
jobs:
1111
build:
@@ -17,33 +17,33 @@ jobs:
1717
id: cache-opencv
1818
uses: actions/cache@v3
1919
with:
20-
path: opencv-tiny
21-
key: opencv-tiny-${{ env.OPENCV_TINY_VERSION }}_aarch64
20+
path: opencv_build
21+
key: opencv-${{ env.OPENCV_VERSION }}_aarch64
2222

2323
- name: Build + Create tarball
2424
uses: uraimo/run-on-arch-action@v2
2525
with:
2626
env: |
27-
OPENCV_TINY_VERSION: ${{ env.OPENCV_TINY_VERSION }}
27+
OPENCV_VERSION: ${{ env.OPENCV_VERSION }}
2828
arch: aarch64
2929
distro: ubuntu_latest
3030
githubToken: ${{ github.token }}
3131
setup: |
3232
mkdir -p "${PWD}/artifacts"
33-
mkdir -p "${PWD}/opencv-tiny"
33+
mkdir -p "${PWD}/opencv_build"
3434
dockerRunArgs: |
3535
--volume "${PWD}/artifacts:/artifacts"
36-
--volume "${PWD}/opencv-tiny:/opencv-tiny"
36+
--volume "${PWD}/opencv_build:/opencv_build"
3737
install: |
3838
apt-get update -y
3939
apt-get install -y python3 python3-pip python3-setuptools python3-wheel ninja-build g++ pkg-config curl cmake libgtk-3-dev
4040
python3 -m pip install --upgrade pip
4141
python3 -m pip install meson
4242
4343
run: |
44-
[ "$(ls /opencv-tiny)" ] || curl https://raw.githubusercontent.com/EmixamPP/opencv-tiny/main/build.sh | bash -s ${OPENCV_TINY_VERSION} /opencv-tiny
44+
[ "$(ls /opencv_build)" ] || curl https://raw.githubusercontent.com/EmixamPP/opencv-tiny/main/build.sh | bash -s ${OPENCV_TINY_VERSION} /opencv-tiny
4545
46-
meson setup build --pkg-config-path=$(find opencv-tiny -name pkgconfig | tr '\n' ':')
46+
meson setup build
4747
meson configure build -Dlibdir=lib64
4848
meson compile -C build
4949

.github/workflows/build.yml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: "Build"
2+
3+
on:
4+
workflow_dispatch:
5+
workflow_call:
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v3
12+
13+
- name: Setup Python
14+
uses: actions/setup-python@v4
15+
with:
16+
python-version: "3.10"
17+
18+
- name: Install dependencies
19+
run: |
20+
sudo apt-get update -y
21+
sudo apt-get install -y python3-setuptools python3-wheel ninja-build g++ pkg-config libgtk-3-dev
22+
python -m pip install --upgrade pip
23+
python -m pip install meson
24+
25+
- name: Install OpenCV
26+
uses: ./.github/actions/install-opencv.yml
27+
28+
- name: Setup build
29+
run: |
30+
meson setup build
31+
meson configure build -Dlibdir=lib64
32+
33+
- name: Compile - Systemd
34+
run: |
35+
meson compile -C build
36+
37+
- name: Create tarball - Systemd
38+
run: |
39+
DESTDIR=install_dir_systemd meson install -C build
40+
sudo chown -R root:root build/install_dir_systemd
41+
tar -czvf build/linux-enable-ir-emitter.systemd.x86-64.tar.gz -C build/install_dir .
42+
43+
- name: Upload tarball - Systemd
44+
uses: actions/upload-artifact@v3
45+
with:
46+
name: linux-enable-ir-emitter.systemd.x86-64.tar.gz
47+
path: build/linux-enable-ir-emitter.systemd.x86-64.tar.gz
48+
49+
- name: Compile - OpenRC
50+
run: |
51+
meson configure build -Dboot_service=openrc
52+
meson compile -C build
53+
54+
- name: Create tarball - OpenRC
55+
run: |
56+
DESTDIR=install_dir_openrc meson install -C build
57+
sudo chown -R root:root build/install_dir_openrc
58+
tar -czvf build/linux-enable-ir-emitter.openrc.x86-64.tar.gz -C build/install_dir .
59+
60+
- name: Upload tarball - OpenRC
61+
uses: actions/upload-artifact@v3
62+
with:
63+
name: linux-enable-ir-emitter.openrc.x86-64.tar.gz
64+
path: build/linux-enable-ir-emitter.openrc.x86-64.tar.gz
65+
66+

.github/workflows/ci.yml

Lines changed: 0 additions & 72 deletions
This file was deleted.

.github/workflows/cpp-lint.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: "C++ Lint"
2+
3+
on:
4+
workflow_dispatch:
5+
workflow_call:
6+
7+
jobs:
8+
lint:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v3
12+
13+
- name: Install dependencies
14+
run: |
15+
sudo apt-get install -y python3-setuptools python3-wheel ninja-build g++ clang-tidy libgtk-3-dev libopencv-video-dev libopencv-video-dev
16+
python -m pip install --upgrade pip
17+
python -m pip install meson
18+
19+
- name: Setup
20+
run: |
21+
meson setup build
22+
meson configure build -Dwerror=false
23+
meson compile -C build
24+
25+
- name: Lint
26+
run: |
27+
ninja clang-tidy -C build
28+

.github/workflows/depend-opencv.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
name: OpenCV dependency
1+
name: Update OpenCV
22
on:
33
workflow_dispatch:
44
schedule:
55
- cron: '0 7 * * *'
66

77
jobs:
8-
depend-opencv:
8+
update-opencv:
99
runs-on: ubuntu-latest
1010
steps:
1111
- uses: actions/checkout@v3
@@ -21,7 +21,8 @@ jobs:
2121
2222
- name: Modify files if new version
2323
run: |
24-
sed -E -i "s@(OPENCV_TINY_VERSION:\s+\")([0-9]+\.[0-9]+\.[0-9]+)(\")@\1$VERSION\3@" .github/workflows/{ci,arm}.yml
24+
sed -E -i "s@(OPENCV_VERSION:\s+\")([0-9]+\.[0-9]+\.[0-9]+)(\")@\1$VERSION\3@" .github/actions/install-opencv.yml
25+
sed -E -i "s@(OPENCV_VERSION:\s+\")([0-9]+\.[0-9]+\.[0-9]+)(\")@\1$VERSION\3@" .github/workflows/arm.yml
2526
sed -E -i "s@(curl https://raw.githubusercontent.com/EmixamPP/opencv-tiny/main/build.sh | bash -s )[0-9]+\.[0-9]+\.[0-9]+(.*)@\1$VERSION\2@" README.md
2627
2728
- name: Create PR if new version
@@ -39,4 +40,5 @@ jobs:
3940
author: github-actions[bot] <noreply@github.com>
4041
assignees: "EmixamPP"
4142
delete-branch: true
43+
4244

0 commit comments

Comments
 (0)