diff --git a/.github/workflows/knative-go-build.yaml b/.github/workflows/knative-go-build.yaml index a7cfe589..7a6894f1 100644 --- a/.github/workflows/knative-go-build.yaml +++ b/.github/workflows/knative-go-build.yaml @@ -47,8 +47,17 @@ jobs: with: fetch-depth: 1 - - name: Vet - run: go vet ./... - - name: Build - run: go build -v ./... + run: | + tags="$(grep -I -r '// +build' . | \ + grep -v '^./vendor/' | \ + grep -v '^./hack/' | \ + grep -v '^./third_party' | \ + cut -f3 -d' ' | \ + sort | uniq | \ + grep -v '^!' | \ + tr '\n' ' ')" + + echo "Building with tags: ${tags}" + go test -vet=off -tags "${tags}" -run=^$ ./... | grep -v "no test" || true + diff --git a/.github/workflows/knative-style.yaml b/.github/workflows/knative-style.yaml index 07fcc013..3501fdc2 100644 --- a/.github/workflows/knative-style.yaml +++ b/.github/workflows/knative-style.yaml @@ -72,3 +72,40 @@ jobs: with: version: v1.30 only-new-issues: true # for initial defensiveness + + # This is mostly copied from https://github.com/get-woke/woke-action-reviewdog/blob/main/entrypoint.sh + # since their action is not yet released under a stable version. + - name: Language + shell: bash + env: + REVIEWDOG_GITHUB_API_TOKEN: ${{ github.token }} + WOKE_VERSION: v0.1.11 + run: | + set -e + cd "${GITHUB_WORKSPACE}" || exit 1 + + TEMP_PATH="$(mktemp -d)" + PATH="${TEMP_PATH}:$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 woke ... https://github.com/get-woke/woke' + curl -sfL https://raw.githubusercontent.com/get-woke/woke/main/install.sh | sh -s -- -b "${TEMP_PATH}" "${WOKE_VERSION}" 2>&1 + echo '::endgroup::' + + # Create a minimal .wokeignore if none already exist. + if [ ! -f .wokeignore ]; then + echo "vendor\nthird_party" > .wokeignore + fi + + echo '::group:: Running woke with reviewdog 🐶 ...' + woke --output simple \ + | reviewdog -efm="%f:%l:%c: %m" \ + -name="woke" \ + -reporter="github-pr-check" \ + -filter-mode="added" \ + -fail-on-error="true" \ + -level="error" \ + echo '::endgroup::'