name: CI on: push: branches: [ main ] pull_request: branches: [ main ] env: GO_VERSION: 1.20.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@v3 with: path: src/github.com/containerd/ttrpc - uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: version: v1.51.2 args: --timeout=5m skip-cache: true working-directory: src/github.com/containerd/ttrpc - name: golangci-lint errors run: golangci-lint run working-directory: src/github.com/containerd/ttrpc if: ${{ failure() }} # # Project checks # project: name: Project Checks runs-on: ubuntu-22.04 timeout-minutes: 5 steps: - uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} - uses: actions/checkout@v3 with: path: src/github.com/containerd/ttrpc fetch-depth: 25 - uses: containerd/project-checks@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.19.x, 1.20.x] name: ${{ matrix.os }} / ${{ matrix.go }} runs-on: ${{ matrix.os }} timeout-minutes: 5 steps: - uses: actions/setup-go@v3 with: go-version: ${{ matrix.go }} - name: Check out code uses: actions/checkout@v3 with: path: src/github.com/containerd/ttrpc fetch-depth: 25 - 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/setup-go@v3 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: Check out code uses: actions/checkout@v3 with: path: src/github.com/containerd/ttrpc fetch-depth: 25 - 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