name: CI

on:
  push:
    branches:
      - 'master'
  pull_request:
    branches:
      - 'master'

jobs:
  golangci:
    name: golangci-lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - uses: actions/setup-go@v5
        with:
          go-version: '1.23'
          cache: true
          cache-dependency-path: go.sum
      - name: golangci-lint
        uses: golangci/golangci-lint-action@v6
        with:
          version: latest
      - name: Run golangci-lint
        run: make lint
  tidy:
    name: tidy
    needs: [ golangci ]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - uses: actions/setup-go@v5
        with:
          go-version: '1.23'
          cache: true
          cache-dependency-path: go.sum
      - name: tidy
        run: make tidy
  codecov:
    name: codecov
    needs: [ tidy ]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - uses: actions/setup-go@v5
        with:
          go-version: '1.23'
          cache: true
          cache-dependency-path: go.sum
      - name: test
        run: make test
      - name: Upload covergae to Codecov
        if: github.repository == 'meshery/meshery-adapter-library'
        uses: codecov/codecov-action@v3
        with:
          files: ./coverage.out
          flags: unittests