name: NATS Server Code Coverage
on:
  workflow_dispatch: {}

  schedule:
    - cron: "40 4 * * *"

jobs:
  nightly_coverage:
    runs-on: ubuntu-latest

    env:
      GOPATH: /home/runner/work/nats-server
      GO111MODULE: "on"

    steps:
      - name: Checkout code
        uses: actions/checkout@v3
        with:
          path: src/github.com/nats-io/nats-server

      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: "1.21.x"

      - name: Run code coverage
        shell: bash --noprofile --norc -x -eo pipefail {0}
        run: |
          set -e
          cd src/github.com/nats-io/nats-server
          ./scripts/cov.sh upload
          set +e

      - name: Convert coverage.out to coverage.lcov
        uses: jandelgado/gcov2lcov-action@v1.0.9
        with:
          infile: acc.out
          working-directory: src/github.com/nats-io/nats-server

      - name: Coveralls
        uses: coverallsapp/github-action@v2
        with:
          github-token: ${{ secrets.github_token }}
          file: src/github.com/nats-io/nats-server/coverage.lcov
