name: Run Tests

on:
  push:
    branches:
      - master
    paths:
      - "**.go"
      - "go.mod"
      - "go.sum"
      - "resource/**"
      - ".github/workflows/test.yml"

jobs:
  tests:
    runs-on: ubuntu-latest
    env:
      GO111MODULE: on
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v4
        with:
          go-version: "^1.21.3"
      - name: Unit test
        run: |
          go test -v ./...
      - name: Run Gosec Security Scanner
        uses: securego/gosec@master
        with:
          args: --exclude=G104,G402 ./...
      - name: xgo build
        uses: crazy-max/ghaction-xgo@v2
        with:
          xgo_version: latest
          go_version: 1.20.x
          dest: dist
          pkg: cmd/dashboard
          prefix: dashboard
          targets: linux/amd64,linux/arm64,linux/arm-7,linux/s390x,linux/riscv64,windows/amd64,windows/386,windows/arm64 # linux/386,
          v: true
          x: false
          race: false
          ldflags: -s -w --extldflags '-static -fpic' -X github.com/naiba/nezha/service/singleton.Version=test
          buildmode: default