Merge pull request #3612 from prziborowski/issue-3610 #2197
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright (c) 2021 VMware, Inc. All Rights Reserved. | |
# | |
# 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: Code Style | |
on: | |
push: | |
branches: [ 'main' ] | |
pull_request: | |
branches: [ 'main' ] | |
jobs: | |
lint: | |
name: Lint Files | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 10 | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22 | |
id: go | |
- name: Go Lint | |
run: make lint | |
boilerplate: | |
name: Boilerplate Check | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false # Keep running if one leg fails. | |
matrix: | |
extension: | |
- go | |
# Map between extension and human-readable name. | |
include: | |
- extension: go | |
language: Go | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22 | |
id: go | |
- 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@v3 | |
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 "((vim25/json)|vendor|third_party|dist)/" | | |
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::' |