diff --git a/.github/workflows/linux-ci.yml b/.github/workflows/linux-ci.yml index cbd25f92d..773628583 100644 --- a/.github/workflows/linux-ci.yml +++ b/.github/workflows/linux-ci.yml @@ -15,46 +15,54 @@ jobs: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v3 - - uses: hendrikmuhs/ccache-action@v1.2 - - name: install dependencies - run: sudo apt-get update && sudo apt-get install pkg-config gcc gtk-doc-tools libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev python3 python3-setuptools ninja-build gobject-introspection libgirepository1.0-dev - - run: sudo pip3 install fonttools meson==0.56.0 gcovr==5.0 - - name: run + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Ccache + uses: hendrikmuhs/ccache-action@v1.2 + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get install \ + gcc \ + gobject-introspection \ + gtk-doc-tools \ + libcairo2-dev \ + libfreetype6-dev \ + libgirepository1.0-dev \ + libglib2.0-dev \ + libgraphite2-dev \ + libicu-dev \ + ninja-build \ + pkg-config \ + python3 \ + python3-setuptools + - name: Install Python Dependencies + run: sudo pip3 install fonttools meson==0.56.0 gcovr==5.0 + - name: Setup Meson run: | ccache --version - meson setup build -Db_coverage=true --auto-features=enabled -Dgraphite=enabled -Dchafa=disabled -Dragel_subproject=true -Doptimization=2 - - name: ci + meson setup build \ + -Dauto_features=enabled \ + -Dchafa=disabled \ + -Dgraphite=enabled \ + -Doptimization=2 \ + -Db_coverage=true \ + -Dragel_subproject=true + - name: Build + run: meson compile -Cbuild + - name: Test run: meson test --print-errorlogs -Cbuild - - - name: generate documentations + - name: Generate Documentations run: ninja -Cbuild harfbuzz-doc - - name: deploy documentations + - name: Deploy Documentations if: github.ref_type == 'tag' run: .ci/deploy-docs.sh env: GH_TOKEN: ${{ secrets.GH_TOKEN }} REVISION: ${{ github.sha }} - - # waiting for https://github.com/rhysd/github-action-benchmark/issues/36 to happen - # - name: benchmark - # run: build/perf/perf --benchmark_format=json > perf/result.json - # - name: store benchmark result - # uses: rhysd/github-action-benchmark@b2ee598 - # if: github.event_name != 'pull_request' - # with: - # name: C++ Benchmark - # tool: 'googlecpp' - # output-file-path: perf/result.json - # gh-pages-branch: gh-pages - # github-token: ${{ secrets.PERSONAL_GITHUB_TOKEN }} - # auto-push: true - # alert-threshold: '150%' - # comment-on-alert: true - # fail-on-alert: true - - - name: cov + - name: Generate Coverage run: ninja -Cbuild coverage-xml - - uses: codecov/codecov-action@v3 + - name: Upload Coverage + uses: codecov/codecov-action@v3 with: file: build/meson-logs/coverage.xml diff --git a/.github/workflows/macos-ci.yml b/.github/workflows/macos-ci.yml index 1fbe2305d..9d23e9dc0 100644 --- a/.github/workflows/macos-ci.yml +++ b/.github/workflows/macos-ci.yml @@ -14,15 +14,38 @@ jobs: runs-on: macos-latest steps: - - uses: actions/checkout@v3 - - uses: hendrikmuhs/ccache-action@v1.2 - - name: install dependencies - run: HOMEBREW_NO_AUTO_UPDATE=1 brew install meson pkg-config freetype glib glib-utils cairo icu4c graphite2 gobject-introspection gtk-doc ninja - - run: pip3 install fonttools - - name: run + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Ccache + uses: hendrikmuhs/ccache-action@v1.2 + - name: Install Dependencies + run: | + export HOMEBREW_NO_AUTO_UPDATE=1 + brew install \ + cairo \ + freetype \ + glib \ + glib-utils \ + gobject-introspection \ + graphite2 \ + gtk-doc \ + icu4c \ + meson \ + ninja \ + pkg-config + - name: Install Python Dependencies + run: pip3 install fonttools + - name: Setup Meson run: | export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig" ccache --version - meson setup build -Dcoretext=enabled -Dgraphite=enabled -Dauto_features=enabled -Dchafa=disabled -Doptimization=2 - - name: ci + meson setup build \ + -Dauto_features=enabled \ + -Dchafa=disabled \ + -Dcoretext=enabled \ + -Dgraphite=enabled \ + -Doptimization=2 + - name: Build + run: meson compile -Cbuild + - name: Test run: meson test --print-errorlogs -Cbuild diff --git a/.github/workflows/msvc-ci.yml b/.github/workflows/msvc-ci.yml index e744a19a0..57ab3af2c 100644 --- a/.github/workflows/msvc-ci.yml +++ b/.github/workflows/msvc-ci.yml @@ -27,35 +27,35 @@ jobs: name: ${{ matrix.name }} steps: - - uses: actions/checkout@v3 - - uses: hendrikmuhs/ccache-action@v1.2 - with: - variant: sccache - key: ${{ github.job }}-${{ matrix.os }}-${{ matrix.ARCH }} - - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - uses: ilammy/msvc-dev-cmd@v1 - with: - arch : ${{ matrix.ARCH }} - - name: Upgrade pip - run: | - python -m pip install -U pip - - name: Install Dependencies - run: | - pip install --upgrade meson ninja fonttools - - name: Build - run: | - sccache --version - meson setup build ` - --wrap-mode=forcefallback ` - --buildtype=release ` - -Dglib=enabled ` - -Dfreetype=enabled ` - -Dgdi=enabled ` - -Ddirectwrite=enabled - - meson compile -C build - - name: Test - run: | - meson test --print-errorlogs --suite=harfbuzz -C build + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + variant: sccache + key: ${{ github.job }}-${{ matrix.os }}-${{ matrix.ARCH }} + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Setup MSVC + uses: ilammy/msvc-dev-cmd@v1 + with: + arch : ${{ matrix.ARCH }} + - name: Install Python Dependencies + run: | + pip install --upgrade meson ninja fonttools + - name: Setup Meson + run: | + sccache --version + meson setup build ` + --wrap-mode=forcefallback ` + --buildtype=release ` + -Dglib=enabled ` + -Dfreetype=enabled ` + -Dgdi=enabled ` + -Ddirectwrite=enabled + - name: Build + run: meson compile -Cbuild + - name: Test + run: meson test --print-errorlogs --suite=harfbuzz -Cbuild diff --git a/.github/workflows/msys2-ci.yml b/.github/workflows/msys2-ci.yml index 146da0167..d825fd043 100644 --- a/.github/workflows/msys2-ci.yml +++ b/.github/workflows/msys2-ci.yml @@ -32,43 +32,42 @@ jobs: run: shell: msys2 {0} steps: - - uses: actions/checkout@v3 - - uses: msys2/setup-msys2@v2 - with: - msystem: ${{ matrix.MSYSTEM }} - update: true - install: >- - mingw-w64-${{ matrix.MSYS2_ARCH }}-cairo - mingw-w64-${{ matrix.MSYS2_ARCH }}-freetype - mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc - mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc-libs - mingw-w64-${{ matrix.MSYS2_ARCH }}-gettext - mingw-w64-${{ matrix.MSYS2_ARCH }}-glib2 - mingw-w64-${{ matrix.MSYS2_ARCH }}-gobject-introspection - mingw-w64-${{ matrix.MSYS2_ARCH }}-graphite2 - mingw-w64-${{ matrix.MSYS2_ARCH }}-icu - mingw-w64-${{ matrix.MSYS2_ARCH }}-meson - mingw-w64-${{ matrix.MSYS2_ARCH }}-ninja - mingw-w64-${{ matrix.MSYS2_ARCH }}-pkg-config - mingw-w64-${{ matrix.MSYS2_ARCH }}-python - mingw-w64-${{ matrix.MSYS2_ARCH }}-python-pip - - name: Install Python Dependencies - run: | - pip install --upgrade fonttools - - name: Build - run: | - meson build \ - --wrap-mode=nodownload \ - --auto-features=enabled \ - -Ddocs=disabled \ - -Ddirectwrite=enabled \ - -Dgdi=enabled \ - -Dgraphite=enabled \ - -Dchafa=disabled - ninja -C build - - name: Test - run: | - meson test \ - --print-errorlogs \ - --suite=harfbuzz \ - -C build + - name: Checkout + uses: actions/checkout@v3 + - name: Setup MSYS2 + uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.MSYSTEM }} + update: true + install: >- + mingw-w64-${{ matrix.MSYS2_ARCH }}-cairo + mingw-w64-${{ matrix.MSYS2_ARCH }}-freetype + mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc + mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc-libs + mingw-w64-${{ matrix.MSYS2_ARCH }}-gettext + mingw-w64-${{ matrix.MSYS2_ARCH }}-glib2 + mingw-w64-${{ matrix.MSYS2_ARCH }}-gobject-introspection + mingw-w64-${{ matrix.MSYS2_ARCH }}-graphite2 + mingw-w64-${{ matrix.MSYS2_ARCH }}-icu + mingw-w64-${{ matrix.MSYS2_ARCH }}-meson + mingw-w64-${{ matrix.MSYS2_ARCH }}-ninja + mingw-w64-${{ matrix.MSYS2_ARCH }}-pkg-config + mingw-w64-${{ matrix.MSYS2_ARCH }}-python + mingw-w64-${{ matrix.MSYS2_ARCH }}-python-pip + - name: Install Python Dependencies + run: | + pip install --upgrade fonttools + - name: Setup Meson + run: | + meson setup build \ + --wrap-mode=nodownload \ + --auto-features=enabled \ + -Ddocs=disabled \ + -Ddirectwrite=enabled \ + -Dgdi=enabled \ + -Dgraphite=enabled \ + -Dchafa=disabled + - name: Build + run: meson compile -Cbuild + - name: Test + run: meson test --print-errorlogs --suite=harfbuzz -Cbuild