name: check-and-test

on:
  - pull_request

jobs:
  #govulncheck_job:
  #  runs-on: ubuntu-latest
  #  name: Run govulncheck
  #  steps:
  #    - id: govulncheck
  #      uses: golang/govulncheck-action@v1
  #      with:
  #        go-version-file: 'go.mod'
  check-and-test:
    runs-on: ubuntu-latest
    env:
      HTTP_PROXY: ""
      GITEA_TEA_TEST_URL: "http://gitea:3000"
      GITEA_TEA_TEST_USERNAME: "test01"
      GITEA_TEA_TEST_PASSWORD: "test01"
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-go@v6
        with:
          go-version-file: 'go.mod'
      - name: lint and build
        run: |
          make clean
          make vet
          make lint
          make fmt-check
          make docs-check
          make build
      - run: curl --noproxy "*" http://gitea:3000/api/v1/version # verify connection to instance
      - name: test and coverage
        run: |
          make test
          make unit-test-coverage
    services:
      gitea:
        image: docker.gitea.com/gitea:1.25.5
        cmd:
          - bash
          - -c
          - >-
            mkdir -p /tmp/conf/
            && mkdir -p /tmp/data/
            && echo "I_AM_BEING_UNSAFE_RUNNING_AS_ROOT = true" > /tmp/conf/app.ini
            && echo "[security]" >> /tmp/conf/app.ini
            && echo "INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1NTg4MzY4ODB9.LoKQyK5TN_0kMJFVHWUW0uDAyoGjDP6Mkup4ps2VJN4" >> /tmp/conf/app.ini
            && echo "INSTALL_LOCK   = true" >> /tmp/conf/app.ini
            && echo "SECRET_KEY     = 2crAW4UANgvLipDS6U5obRcFosjSJHQANll6MNfX7P0G3se3fKcCwwK3szPyGcbo" >> /tmp/conf/app.ini
            && echo "PASSWORD_COMPLEXITY = off" >> /tmp/conf/app.ini
            && echo "[database]" >> /tmp/conf/app.ini
            && echo "DB_TYPE = sqlite3" >> /tmp/conf/app.ini
            && echo "[repository]" >> /tmp/conf/app.ini
            && echo "ROOT = /tmp/data/" >> /tmp/conf/app.ini
            && echo "[server]" >> /tmp/conf/app.ini
            && echo "ROOT_URL = http://gitea:3000" >> /tmp/conf/app.ini
            && gitea migrate -c /tmp/conf/app.ini
            && gitea admin user create --username=test01 --password=test01 --email=test01@gitea.io --admin=true --must-change-password=false --access-token -c /tmp/conf/app.ini
            && gitea web -c /tmp/conf/app.ini
