version: 2 jobs: distcheck: docker: - image: ubuntu:17.10 steps: - checkout - run: apt update && apt install -y ninja-build binutils libtool autoconf automake make cmake gcc g++ pkg-config ragel gtk-doc-tools libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev python python-pip - run: pip install fonttools - run: ./autogen.sh && (make distcheck || (cd harfbuzz-* && ../.ci/collect-logs.sh && false)) && rm -rf harfbuzz-* - run: make distdir && cd harfbuzz-* && cmake -DHB_CHECK=ON -Bbuild -H. -GNinja && ninja -Cbuild && CTEST_OUTPUT_ON_FAILURE=1 ninja -Cbuild test && ninja -Cbuild install alpine: docker: - image: alpine steps: - checkout - run: apk update && apk add ragel make pkgconfig libtool autoconf automake gettext gcc g++ glib-dev freetype-dev cairo-dev - run: ./autogen.sh - run: make && (make check || (.ci/collect-logs.sh && false)) archlinux: docker: - image: base/devel steps: - checkout - run: pacman --noconfirm -Syu freetype2 cairo icu gettext gobject-introspection gcc gcc-libs glib2 graphite pkg-config ragel python - run: ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 - run: make && (make check || (.ci/collect-logs.sh && false)) fedora-outoftreebuild: docker: - image: fedora steps: - checkout - run: dnf install -y pkg-config ragel gcc gcc-c++ automake autoconf libtool make which glib2-devel freetype-devel cairo-devel libicu-devel gobject-introspection-devel graphite2-devel redhat-rpm-config python || true - run: NOCONFIGURE=1 ./autogen.sh --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 - run: mkdir build && cd build && ../configure && make && (make check || (.ci/collect-logs.sh && false)) cmake-gcc: docker: - image: ubuntu:17.10 steps: - checkout - run: apt update && apt install -y ninja-build binutils cmake gcc g++ pkg-config ragel gtk-doc-tools libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev python python-pip - run: pip install fonttools - run: cmake -DHB_CHECK=ON -Bbuild -H. -GNinja - run: ninja -Cbuild - run: CTEST_OUTPUT_ON_FAILURE=1 ninja -Cbuild test - run: ninja -Cbuild install cmake-oracledeveloperstudio: docker: - image: fedora steps: - checkout - run: dnf install -y gcc ragel cmake make which glib2-devel freetype-devel cairo-devel libicu-devel graphite2-devel wget tar bzip2 python || true - run: wget http://$ODSUSER:$ODSPASS@behdad.org/harfbuzz-private/OracleDeveloperStudio12.6-linux-x86-bin.tar.bz2 && tar xf OracleDeveloperStudio12.6-linux-x86-bin.tar.bz2 --owner root --group root --no-same-owner - run: CC=/root/project/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/suncc CXX=/root/project/OracleDeveloperStudio12.6-linux-x86-bin/developerstudio12.6/bin/sunCC cmake -DHB_HAVE_GRAPHITE2=ON -DHB_BUILTIN_UCDN=ON -DHB_HAVE_GLIB=ON -DHB_HAVE_ICU=ON -DHB_HAVE_FREETYPE=ON -Bbuild -H. - run: make -Cbuild - run: CTEST_OUTPUT_ON_FAILURE=1 make -Cbuild test - run: make -Cbuild install crosscompile-notest-djgpp: docker: - image: quay.io/ebraminio/djgpp steps: - checkout - run: apt update && apt install -y ragel pkg-config libtool autoconf - run: CFLAGS="-Wno-attributes" CXXFLAGS="-Wno-attributes" ./autogen.sh --prefix=/usr/local/djgpp --host=i586-pc-msdosdjgpp - run: make crosscompile-notest-freebsd9: docker: - image: donbowman/freebsd-cross-build steps: - checkout - run: apt update && apt install -y pkg-config ragel - run: ./autogen.sh --prefix=/freebsd --host=x86_64-pc-freebsd9 - run: make crosscompile-notest-psvita: docker: - image: dockcross/base steps: - checkout - run: apt update && apt install ragel - run: git clone https://github.com/vitasdk/vdpm && cd vdpm && ./bootstrap-vitasdk.sh - run: ./autogen.sh --prefix=/usr/local/vitasdk/arm-vita-eabi --host=arm-vita-eabi - run: make crosscompile-cmake-notest-android-arm: docker: - image: dockcross/android-arm steps: - checkout - run: apt update && apt install ragel - run: cmake -Bbuild -H. -GNinja - run: ninja -Cbuild crosscompile-cmake-notest-browser-asmjs: docker: - image: dockcross/browser-asmjs steps: - checkout - run: apt update && apt install ragel - run: cmake -Bbuild -H. -GNinja - run: ninja -Cbuild crosscompile-cmake-notest-linux-arm64: docker: - image: dockcross/linux-arm64 steps: - checkout - run: apt update && apt install ragel - run: cmake -Bbuild -H. -GNinja - run: ninja -Cbuild crosscompile-cmake-notest-linux-mips: docker: - image: dockcross/linux-mips steps: - checkout - run: apt update && apt install ragel - run: cmake -Bbuild -H. -GNinja - run: ninja -Cbuild crosscompile-cmake-notest-windows-x64: docker: - image: dockcross/windows-x64 steps: - checkout - run: apt update && apt install ragel - run: cmake -Bbuild -H. -GNinja - run: ninja -Cbuild workflows: version: 2 build: jobs: # both autotools and cmake - distcheck # autotools based builds - alpine - archlinux - fedora-outoftreebuild # cmake based builds - cmake-gcc - cmake-oracledeveloperstudio # crosscompiles # they can't be test thus are without tests ## autotools - crosscompile-notest-djgpp - crosscompile-notest-freebsd9 - crosscompile-notest-psvita ## cmake - crosscompile-cmake-notest-android-arm - crosscompile-cmake-notest-browser-asmjs - crosscompile-cmake-notest-linux-arm64 - crosscompile-cmake-notest-linux-mips - crosscompile-cmake-notest-windows-x64