name: CI on: push: branches: [ main ] pull_request: branches: [ main ] env: GO_VERSION: 1.23.x permissions: contents: read pull-requests: read jobs: # # golangci-lint # linters: name: Linters runs-on: ${{ matrix.os }} timeout-minutes: 10 strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: path: src/github.com/containerd/ttrpc - uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0 with: go-version: ${{ env.GO_VERSION }} - name: golangci-lint uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1 with: version: v1.60.3 args: --timeout=5m skip-cache: true working-directory: src/github.com/containerd/ttrpc # # Project checks # project: name: Project Checks runs-on: ubuntu-22.04 timeout-minutes: 5 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: path: src/github.com/containerd/ttrpc fetch-depth: 25 - uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0 with: go-version: ${{ env.GO_VERSION }} - uses: containerd/project-checks@434a07157608eeaa1d5c8d4dd506154204cd9401 # v1.1.0 with: working-directory: src/github.com/containerd/ttrpc # # Build and Test project # build: strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] go: [1.22.x, 1.23.x] name: ${{ matrix.os }} / ${{ matrix.go }} runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: path: src/github.com/containerd/ttrpc fetch-depth: 25 - uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0 with: go-version: ${{ matrix.go }} - name: Test working-directory: src/github.com/containerd/ttrpc run: | make test - name: Coverage working-directory: src/github.com/containerd/ttrpc run: | make coverage TESTFLAGS_RACE=-race - name: Integration Tests working-directory: src/github.com/containerd/ttrpc run: | make integration # # Run Protobuild # protobuild: name: Run Protobuild runs-on: ubuntu-22.04 timeout-minutes: 5 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: path: src/github.com/containerd/ttrpc fetch-depth: 25 - uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0 with: go-version: ${{ env.GO_VERSION }} id: go - name: Setup Go binary path shell: bash run: | echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV echo "${{ github.workspace }}/bin" >> $GITHUB_PATH - name: Install dependencies working-directory: src/github.com/containerd/ttrpc run: | sudo make install-protobuf make install-protobuild - name: Install protoc-gen-go-ttrpc working-directory: src/github.com/containerd/ttrpc run: | make install - name: Run Protobuild working-directory: src/github.com/containerd/ttrpc run: | make check-protos