name: Coverity Scan
on:
  schedule:
    - cron: '0 18 * * 1,4' # Bi-weekly at 18:00 UTC on Monday and Thursday

jobs:
  latest:
    runs-on: ubuntu-latest
    steps:
      - name: Determine current repository
        id: "determine-repo"
        run: "echo \"::set-output name=repo::${GITHUB_REPOSITORY}\""

      - uses: actions/checkout@v2
      - name: Download Coverity Build Tool
        run: |
          wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=rizin" -O cov-analysis-linux64.tar.gz
          mkdir cov-analysis-linux64
          tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
        env:
          TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
        if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'

      - name: Fixed world writable dirs
        run: |
          chmod go-w $HOME
          sudo chmod -R go-w /usr/share
        if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'

      - name: Configure
        run: ./configure
        if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'

      - name: Build with cov-build
        run: |
          export PATH=`pwd`/cov-analysis-linux64/bin:$PATH
          cov-build --dir cov-int make
        if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'

      # TODO: Make it GitHub Action instead
      - name: Submit the result to Coverity Scan
        run: |
          tar czvf rizin.tgz cov-int
          curl \
            --form project=rizin \
            --form token=$TOKEN \
            --form email=noreply@rizin.re \
            --form file=@rizin.tgz \
            --form version=trunk \
            --form description="rizin" \
            https://scan.coverity.com/builds?project=rizin
        env:
          TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
        if: steps.determine-repo.outputs.repo == 'rizinorg/rizin'
