name: CI on: push: branches: - master pull_request: jobs: test: name: Test runs-on: ${{ matrix.os }} strategy: # Fail fast is disabled because there are Go version specific features and tests # that should be able to fail independently. fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] go: ['1.15', '1.16', '1.17', '1.18'] tags: ['', 'viper_yaml2', 'viper_toml2'] env: GOFLAGS: -mod=readonly steps: - name: Set up Go uses: actions/setup-go@v3 with: go-version: ${{ matrix.go }} - name: Checkout code uses: actions/checkout@v3 - name: Test run: go test -race -tags '${{ matrix.tags }}' -v ./... if: runner.os != 'Windows' - name: Test (without race detector) run: go test -tags '${{ matrix.tags }}' -v ./... if: runner.os == 'Windows' lint: name: Lint runs-on: ubuntu-latest env: GOFLAGS: -mod=readonly steps: - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.17 - name: Checkout code uses: actions/checkout@v3 - name: Lint uses: golangci/golangci-lint-action@v3 with: version: v1.45.2