name: Tests on: push: branches: - main pull_request: env: # https://github.com/actions/setup-go#supported-version-syntax # ex: # - 1.18beta1 -> 1.18.0-beta.1 # - 1.18rc1 -> 1.18.0-rc.1 GO_VERSION: '1.24' jobs: # Check if there is any dirty change for go mod tidy go-mod: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} - name: Check go mod run: | go mod tidy git diff --exit-code go.mod git diff --exit-code go.sum # We already run the current golangci-lint in tests, but here we test # our GitHub action with the latest stable golangci-lint. golangci-lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: # https://github.com/actions/setup-go#supported-version-syntax # ex: # - 1.18beta1 -> 1.18.0-beta.1 # - 1.18rc1 -> 1.18.0-rc.1 go-version: ${{ env.GO_VERSION }} - name: lint uses: golangci/golangci-lint-action@v7.0.0 with: version: latest tests-on-windows: needs: golangci-lint # run after golangci-lint action to not produce duplicated errors runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI - name: Run tests run: make.exe test tests-on-macos: needs: golangci-lint # run after golangci-lint action to not produce duplicated errors runs-on: macos-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI - name: Run tests run: make test tests-on-unix: needs: golangci-lint # run after golangci-lint action to not produce duplicated errors strategy: matrix: os: - ubuntu-latest - ubuntu-24.04-arm golang: - '1.23' - '1.24' runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: ${{ matrix.golang }} - name: Run tests run: make test