# ------------------------------------------------------------ # Copyright 2021 The Dapr Authors # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ------------------------------------------------------------ name: components-contrib on: push: branches: - master - release-* tags: - v* pull_request: branches: - master - release-* jobs: build: name: Build ${{ matrix.target_os }}_${{ matrix.target_arch }} binaries runs-on: ${{ matrix.os }} env: GOVER: 1.17 GOOS: ${{ matrix.target_os }} GOARCH: ${{ matrix.target_arch }} GOPROXY: https://proxy.golang.org GOLANGCI_LINT_VER: v1.31 strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] target_arch: [arm, amd64] include: - os: ubuntu-latest target_os: linux - os: windows-latest target_os: windows - os: macOS-latest target_os: darwin exclude: - os: windows-latest target_arch: arm - os: macOS-latest target_arch: arm steps: - name: Check if need skip id: skip_check uses: fkirc/skip-duplicate-actions@v3.4.0 with: cancel_others: 'true' paths_ignore: '["**.md", ".codecov.yaml", ".github/workflows/dapr-automerge.yml"]' - name: Set up Go ${{ env.GOVER }} if: ${{ steps.skip_check.outputs.should_skip != 'true' }} uses: actions/setup-go@v2 with: go-version: ${{ env.GOVER }} - name: Check out code into the Go module directory if: ${{ steps.skip_check.outputs.should_skip != 'true' }} uses: actions/checkout@v2 - name: Run golangci-lint if: matrix.target_arch == 'amd64' && matrix.target_os == 'linux' && steps.skip_check.outputs.should_skip != 'true' uses: golangci/golangci-lint-action@v2.2.1 with: version: ${{ env.GOLANGCI_LINT_VER }} - name: Run go mod tidy check diff if: matrix.target_arch == 'amd64' && matrix.target_os == 'linux' && steps.skip_check.outputs.should_skip != 'true' run: make modtidy check-diff - name: Run make test env: COVERAGE_OPTS: "-coverprofile=coverage.txt -covermode=atomic" if: matrix.target_arch != 'arm' && steps.skip_check.outputs.should_skip != 'true' run: make test - name: Codecov if: matrix.target_arch == 'amd64' && matrix.target_os == 'linux' uses: codecov/codecov-action@v1