diff options
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r-- | .github/workflows/ci.yml | 238 |
1 files changed, 238 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..12033db --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,238 @@ +name: CI + +# Should run only on branches and PR, as "on_tag.yml" will handle tags +on: + push: + branches: master test + pull_request: + branches: master + +jobs: + +# +# Linux +# + Ubuntu: + name: Ubuntu debuild + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - name: prepare + run: | + sudo apt-get update + sudo apt-get install -y autoconf automake autopoint autotools-dev \ + gettext libdbus-1-dev pkg-config xmlto \ + devscripts build-essential lintian \ + debhelper-compat \ + dh-exec libdbus-1-dev \ + libmagick++-dev libv4l-dev python3-dev \ + libgtk-3-dev lftp \ + dh-sequence-python3 libgtk2.0-dev \ + libqt5x11extras5-dev qtbase5-dev + - name: build + run: | + .github/workflows/debuilder.sh + + Ubuntu_Gtk2: + name: Ubuntu with Gtk2 + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: prepare + run: | + sudo apt update + sudo apt-get install -y autoconf automake autopoint autotools-dev \ + gettext libdbus-1-dev libgtk2.0-dev libmagick++-dev \ + libqt5x11extras5-dev libv4l-dev libx11-dev openjdk-8-jdk-headless \ + perl pkg-config python-all-dev python-all-dbg python-gtk2-dev \ + qt5-default xmlto + + - name: configure + run: | + autoreconf -vfi + export QT_SELECT=5 + ./configure + - name: build + run: + make + - name: check + run: + make check-local + - name: install + run: + sudo make install + Ubuntu_Gtk3: + name: Ubuntu with Gtk3 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: prepare + run: | + sudo apt update + sudo apt-get install -y autoconf automake autopoint autotools-dev \ + gettext libdbus-1-dev gir1.2-gtk-3.0 libgtk-3-dev \ + libgirepository1.0-dev libmagick++-dev libqt5x11extras5-dev \ + libv4l-dev libx11-dev openjdk-8-jdk-headless perl \ + pkg-config python3-minimal python3-dev python3 python3-gi \ + qt5-default xmlto + - name: configure + run: | + autoreconf -vfi + + # Let configure get this + unset PYTHON_CFLAGS PYTHON + + export QT_SELECT=5 + ./configure --with-gtk=gtk3 --with-python=python3 + - name: build + run: + make + - name: check + run: + make check-local + - name: install + run: + sudo make install + Mingw_w64_VfW: + name: Mingw-w64 VfW + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: prepare + run: | + sudo apt update + sudo apt-get install -y autoconf automake autopoint autotools-dev \ + gettext libdbus-1-dev pkg-config win-iconv-mingw-w64-dev \ + binutils-mingw-w64-i686 gcc-mingw-w64 mingw-w64-i686-dev \ + mingw-w64-common xmlto + - name: configure + run: | + export PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig + + autoreconf -vfi + + CC=i686-w64-mingw32-gcc ./configure \ + --host=i686-w64-mingw32 --prefix=/usr/local/win32 \ + --without-gtk --without-python --without-qt --without-java \ + --without-imagemagick --enable-pthread + - name: build + run: + make + - name: install + run: + sudo make install + Mingw_w64_DShow: + name: Mingw-w64 DShow + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: prepare + run: | + sudo apt update + sudo apt-get install -y autoconf automake autopoint autotools-dev \ + gettext libdbus-1-dev pkg-config win-iconv-mingw-w64-dev \ + binutils-mingw-w64-i686 gcc-mingw-w64 mingw-w64-i686-dev \ + mingw-w64-common xmlto + - name: configure + run: | + export PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig + + autoreconf -vfi + + CC=i686-w64-mingw32-gcc ./configure \ + --host=i686-w64-mingw32 --prefix=/usr/local/win32 \ + --without-gtk --without-python --without-qt --without-java \ + --without-imagemagick --enable-pthread \ + --with-directshow + - name: build + run: + make + - name: install + run: + sudo make install + +# +# Mac OS +# + Mac_OS: + name: Mac OS + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: prepare + run: | + brew install gettext autoconf automake libiconv libtool \ + gs graphicsmagick python xmlto pkg-config ccache + + brew unlink libtool && brew link libtool + brew unlink gettext && brew link gettext + - name: configure + run: + autoreconf -vfi + + ./configure --disable-video --disable-nls --with-python=python3 + + - name: build + run: | + make + sudo make install + +# +# Windows +# + Windows: + name: Windows + runs-on: windows-latest + strategy: + matrix: + arch: [x86_64, i686] + video: [VfW, DShow] + include: + - arch: x86_64 + msystem: MINGW64 + grep: x86-64 + - arch: i686 + msystem: MINGW32 + grep: 386 + - video: DShow + extra: --with-directshow + - video: VfW + extra: + defaults: + run: + shell: msys2 {0} + + env: + CPPFLAGS: -D__USE_MINGW_ANSI_STDIO=1 + + steps: + - uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.msystem }} + update: false + install: >- + mingw-w64-${{ matrix.arch }}-gcc + mingw-w64-${{ matrix.arch }}-iconv + mingw-w64-${{ matrix.arch }}-imagemagick + mingw-w64-${{ matrix.arch }}-python + base-devel git xmlto + autoconf libtool automake gettext make autoconf-archive pkg-config + + - uses: actions/checkout@v2 + + - name: configure + shell: msys2 {0} + run: | + autoreconf -vfi + ./configure LDFLAGS="-static" \ + --enable-pthread --disable-dependency-tracking \ + ${{ matrix.extra }} + + - name: build + shell: msys2 {0} + run: + make + - name: install + shell: msys2 {0} + run: + make install |