Skip to content

Commit e1b030a

Browse files
authored
Merge pull request #149 from alicevision/dev/ci/add_actions
[ci] added github actions for CI
2 parents 3552da5 + 84280d5 commit e1b030a

File tree

3 files changed

+82
-10
lines changed

3 files changed

+82
-10
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Continuous Integration
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- develop
8+
# Skip jobs when only documentation files are changed
9+
paths-ignore:
10+
- '**.md'
11+
- '**.rst'
12+
- 'docs/**'
13+
pull_request:
14+
paths-ignore:
15+
- '**.md'
16+
- '**.rst'
17+
- 'docs/**'
18+
19+
jobs:
20+
build:
21+
runs-on: ubuntu-latest
22+
strategy:
23+
matrix:
24+
container: ["alicevision/popsift-deps:cuda10.2-ubuntu18.04", "alicevision/popsift-deps:cuda11.8.0-ubuntu20.04", "alicevision/popsift-deps:cuda12.1.0-ubuntu22.04"]
25+
build_tpe: ["Release", "Debug"]
26+
exclude:
27+
# excludes debug on this one as it has a segmentation fault during the compilation (!)
28+
- container: "alicevision/popsift-deps:cuda12.1.0-ubuntu22.04"
29+
build_tpe: "Debug"
30+
31+
container:
32+
image: ${{ matrix.container }}
33+
34+
env:
35+
DEPS_INSTALL_DIR: /opt/
36+
BUILD_TYPE: ${{ matrix.build_tpe }}
37+
CTEST_OUTPUT_ON_FAILURE: 1
38+
steps:
39+
- uses: actions/checkout@v2
40+
41+
- name: Prepare File Tree
42+
run: |
43+
mkdir ./build
44+
mkdir ./build_as_3rdparty
45+
mkdir ../popsift_install
46+
47+
- name: Configure CMake
48+
working-directory: ./build
49+
run: |
50+
cmake .. \
51+
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
52+
-DBUILD_SHARED_LIBS:BOOL=ON \
53+
-DCMAKE_PREFIX_PATH="${DEPS_INSTALL_DIR}" \
54+
-DPopSift_BUILD_DOCS:BOOL=OFF \
55+
-DCMAKE_INSTALL_PREFIX:PATH=$PWD/../../popsift_install
56+
57+
- name: Build
58+
working-directory: ./build
59+
run: |
60+
make -j$(nproc) install
61+
62+
- name: Build As Third Party
63+
working-directory: ./build_as_3rdparty
64+
run: |
65+
cmake ../src/application \
66+
-DBUILD_SHARED_LIBS:BOOL=ON \
67+
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
68+
-DCMAKE_PREFIX_PATH:PATH="$PWD/../../popsift_install;${DEPS_INSTALL_DIR}"
69+
make -j$(nproc)

Dockerfile_deps

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ LABEL maintainer="AliceVision Team [email protected]"
77
# see https://hub.docker.com/r/nvidia/cuda/
88
#
99
# For example, to create a ubuntu 16.04 with cuda 8.0 for development, use
10-
# docker build --build-arg CUDA_TAG=8.0 --tag alicevision/popsift-deps:cuda${CUDA_TAG}-ubuntu${OS_TAG} .
10+
# docker build --build-arg CUDA_TAG=8.0 --tag alicevision/popsift-deps:cuda${CUDA_TAG}-ubuntu${OS_TAG} -f Dockerfile_deps .
1111
#
1212
# then execute with nvidia docker (https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0))
1313
# docker run -it --runtime=nvidia popsift_deps
@@ -32,12 +32,12 @@ RUN apt-get clean && apt-get update && apt-get install -y --no-install-recommend
3232
libboost-thread-dev \
3333
&& rm -rf /var/lib/apt/lists/*
3434

35-
# Manually install cmake
35+
# Manually install cmake
3636
WORKDIR /tmp/cmake
37-
ENV CMAKE_VERSION=3.17
37+
ENV CMAKE_VERSION=3.24
3838
ENV CMAKE_VERSION_FULL=${CMAKE_VERSION}.2
39-
RUN wget https://cmake.org/files/v3.17/cmake-${CMAKE_VERSION_FULL}.tar.gz && \
40-
tar zxvf cmake-${CMAKE_VERSION_FULL}.tar.gz && \
39+
RUN wget https://cmake.org/files/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION_FULL}.tar.gz && \
40+
tar zxf cmake-${CMAKE_VERSION_FULL}.tar.gz && \
4141
cd cmake-${CMAKE_VERSION_FULL} && \
4242
./bootstrap --prefix=/usr/local -- -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_USE_OPENSSL:BOOL=ON && \
4343
make -j$(nproc) install && \

README.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11

22
# PopSift
33

4-
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3728/badge)](https://bestpractices.coreinfrastructure.org/projects/3728) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/8b0f7a68bc0d4df2ac89c6e732917caa)](https://app.codacy.com/manual/alicevision/popsift?utm_source=github.com&utm_medium=referral&utm_content=alicevision/popsift&utm_campaign=Badge_Grade_Settings)
4+
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3728/badge)](https://bestpractices.coreinfrastructure.org/projects/3728)
5+
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/64f9192b53df46b483e7cf5be7e2dddd)](https://app.codacy.com/gh/alicevision/popsift/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
56

67
PopSift is an open-source implementation of the SIFT algorithm in CUDA.
78
PopSift tries to stick as closely as possible to David Lowe's famous paper [1], while extracting features from an image in real-time at least on an NVidia GTX 980 Ti GPU.
@@ -100,10 +101,12 @@ In particular, users can choose to generate results very similar to VLFeat or re
100101
We acknowledge that there is at least one SIFT implementation that is vastly faster, but it makes considerable sacrifices in terms of accuracy and compatibility.
101102

102103
## Continuous integration:
103-
- [![Build Status](https://travis-ci.org/alicevision/popsift.svg?branch=master)](https://travis-ci.org/alicevision/popsift) master branch.
104-
- [![Build Status](https://travis-ci.org/alicevision/popsift.svg?branch=develop)](https://travis-ci.org/alicevision/popsift) develop branch.
105-
- [![Build status](https://ci.appveyor.com/api/projects/status/rsm5269hs288c2ji/branch/develop?svg=true)](https://ci.appveyor.com/project/AliceVision/popsift/branch/develop)
106-
develop branch.
104+
105+
* ![Continuous Integration](https://github.com/alicevision/popsift/workflows/Continuous%20Integration/badge.svg?branch=master) master branch on Linux.
106+
107+
* ![Continuous Integration](https://github.com/alicevision/popsift/workflows/Continuous%20Integration/badge.svg?branch=develop) develop branch on Linux.
108+
109+
* [![Build status](https://ci.appveyor.com/api/projects/status/rsm5269hs288c2ji/branch/develop?svg=true)](https://ci.appveyor.com/project/AliceVision/popsift/branch/develop) develop branch on Windows.
107110

108111
## License
109112

0 commit comments

Comments
 (0)