name: linux-ci

on:
  push:
    branches: [ main ]
    tags: ["*.*.*"]
  pull_request:
    branches: [ main ]

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-20.04

    steps:
    - uses: actions/checkout@v3
    - 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
      run: meson build -Db_coverage=true --auto-features=enabled -Dgraphite=enabled -Dchafa=disabled -Dragel_subproject=true -Doptimization=2
    - name: ci
      run: meson test --print-errorlogs -Cbuild

    - name: generate documentations
      run: ninja -Cbuild harfbuzz-doc
    - 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
      run: ninja -Cbuild coverage-xml
    - uses: codecov/codecov-action@v3
      with:
        file: build/meson-logs/coverage.xml
