name: Tests on: pull_request: push: # trying and staging branches are for BORS config branches: - trying - staging - main jobs: linter: name: linter runs-on: ubuntu-latest steps: - uses: actions/setup-go@v5 with: go-version: 1.17 - uses: actions/checkout@v4 - name: golangci-lint uses: golangci/golangci-lint-action@v6 with: version: v1.45.2 - name: Run go vet run: go vet - name: Yaml linter uses: ibiqlik/action-yamllint@v3 with: config_file: .yamllint.yml integration_tests: runs-on: ubuntu-latest # Will not run if the event is a PR to bump-meilisearch-v* (so a pre-release PR) # Will still run for each push to bump-meilisearch-v* if: github.event_name != 'pull_request' || !startsWith(github.base_ref, 'bump-meilisearch-v') strategy: matrix: # Current go.mod version and latest stable go version go: [1.16, 1.17] include: - go: 1.16 tag: current - go: 1.17 tag: latest name: integration-tests (go ${{ matrix.tag }} version) steps: - name: Set up Go ${{ matrix.go }} uses: actions/setup-go@v5 with: go-version: ${{ matrix.go }} - name: Check out code into the Go module directory uses: actions/checkout@v4 - name: Get dependencies run: | go get -v -t -d ./... if [ -f Gopkg.toml ]; then curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh dep ensure fi - name: Meilisearch setup (latest version) with Docker run: docker run -d -p 7700:7700 getmeili/meilisearch:latest meilisearch --master-key=masterKey --no-analytics - name: Run integration tests run: go test -v -race -coverprofile=coverage.txt -covermode=atomic ./... - name: Upload coverage report uses: codecov/codecov-action@v5 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}