# Copyright © 2023 OpenIM open source community. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: OpenIM Check Coverage

on:
  workflow_dispatch:
  push:
    branches: [ "main" ]
    paths-ignore:
      - "docs/**"
      - "**/*.md"
      - "**/*.yaml"
      - "CONTRIBUTORS"
      - "CHANGELOG/**"
  pull_request:
    branches: [ "*" ]
    paths-ignore:
      - "docs/**"
      - "**/*.md"
      - "**/*.yaml"
      - "CONTRIBUTORS"
      - "CHANGELOG/**"
env:
  # Common versions
  GO_VERSION: "1.20"

jobs:
  coverage:
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Golang with cache
        uses: magnetikonline/action-golang-cache@v4
        with:
          go-version: ${{ env.GO_VERSION }}

      - name: Install Dependencies
        run: sudo apt update && sudo apt install -y libgpgme-dev libbtrfs-dev libdevmapper-dev

      - name: Run Cover
        run: make cover
        continue-on-error: true

      - name: Upload Coverage to Codecov
        uses: codecov/codecov-action@v4