lingrino/vaku

View on GitHub
.github/workflows/validate.yml

Summary

Maintainability
Test Coverage
name: Validate

on:
  workflow_dispatch:
  push:

jobs:
  docs:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version: stable # https://golang.org/dl/
      - name: Docs Check
        run: |
          before=$(cat docs/cli/*.md | md5sum)
          go run main.go docs docs/cli
          after=$(cat docs/cli/*.md | md5sum)
          if [ "$before" != "$after" ]; then exit 1; fi
        shell: bash
  golangci:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version: stable # https://golang.org/dl/
      - name: Lint
        uses: golangci/golangci-lint-action@v5
        with:
          args: --timeout=5m
  gomod:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version: stable # https://golang.org/dl/
      - name: Go Mod Tidy
        run: test -z $(go mod tidy)
  govulncheck:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version: stable # https://golang.org/dl/
      - name: Install govulncheck
        run: go install golang.org/x/vuln/cmd/govulncheck@latest
      - name: Run govulncheck
        run: govulncheck ./...
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version: stable # https://golang.org/dl/
      - name: Goreleaser Check
        uses: goreleaser/goreleaser-action@v5.0.0
        with:
          args: check
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version: stable # https://golang.org/dl/
      - name: Cache Modules
        uses: actions/cache@v4
        with:
          path: ~/go/pkg/mod
          key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
          restore-keys: |
            ${{ runner.os }}-go-
      - name: Test
        run: go test -cover -coverprofile=c.out -covermode=atomic -race -v ./...