# Copyright 2020 The Knative 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. # This file is automagically synced here from github.com/knative-sandbox/.github # repo by knobots: https://github.com/knative-sandbox/knobots and will be overwritten. name: Boilerplate on: pull_request: branches: [ 'main', 'master', 'release-*' ] jobs: check: name: Boilerplate Check runs-on: ubuntu-latest strategy: fail-fast: false # Keep running if one leg fails. matrix: extension: - go - sh # Map between extension and human-readable name. include: - extension: go language: Go - extension: sh language: Bash steps: - name: Set up Go 1.17.x uses: actions/setup-go@v2 with: go-version: 1.17.x id: go - name: Check out code uses: actions/checkout@v2 - name: Install Tools run: | TEMP_PATH="$(mktemp -d)" cd $TEMP_PATH echo '::group::🐶 Installing reviewdog ... https://github.com/reviewdog/reviewdog' curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b "${TEMP_PATH}" 2>&1 echo '::endgroup::' echo '::group:: Installing boilerplate-check ... https://github.com/mattmoor/boilerplate-check' go install github.com/mattmoor/boilerplate-check/cmd/boilerplate-check@latest echo '::endgroup::' echo "${TEMP_PATH}" >> $GITHUB_PATH - id: boilerplate_txt uses: andstor/file-existence-action@v1 with: files: ./hack/boilerplate/boilerplate.${{ matrix.extension }}.txt - name: ${{ matrix.language }} license boilerplate shell: bash if: ${{ steps.boilerplate_txt.outputs.files_exists == 'true' }} env: REVIEWDOG_GITHUB_API_TOKEN: ${{ github.token }} run: | set -e cd "${GITHUB_WORKSPACE}" || exit 1 echo '::group:: Running github.com/mattmoor/boilerplate-check for ${{ matrix.language }} with reviewdog 🐶 ...' # Don't fail because of boilerplate-check set +o pipefail boilerplate-check check \ --boilerplate ./hack/boilerplate/boilerplate.${{ matrix.extension }}.txt \ --file-extension ${{ matrix.extension }} \ --exclude "(vendor|third_party)/" | reviewdog -efm="%A%f:%l: %m" \ -efm="%C%.%#" \ -name="${{ matrix.language }} headers" \ -reporter="github-pr-check" \ -filter-mode="diff_context" \ -fail-on-error="true" \ -level="error" echo '::endgroup::'