Просмотр исходного кода

chore(elvis): only trigger in github action when pull request

Zaiming Shi 5 лет назад
Родитель
Сommit
e06fcbb769
2 измененных файлов с 11 добавлено и 16 удалено
  1. 2 4
      .github/workflows/elvis_lint.yaml
  2. 9 12
      elvis-check.sh

+ 2 - 4
.github/workflows/elvis_lint.yaml

@@ -1,6 +1,6 @@
 name: Elvis Linter
 
-on: [push, pull_request]
+on: [pull_request]
 
 jobs:
   build:
@@ -8,6 +8,4 @@ jobs:
     steps:
       - uses: actions/checkout@v1
       - run: |
-          echo "$GITHUB_BASE_REF"
-          echo "$GITHUB_HEAD_REF"
-           ./elvis-check.sh $GITHUB_BASE_REF $GITHUB_HEAD_REF
+          ./elvis-check.sh $GITHUB_BASE_REF

+ 9 - 12
elvis-check.sh

@@ -2,30 +2,27 @@
 
 set -euo pipefail
 
-echo "GITHUB_BASE_REF  $1"
-echo "GITHUB_HEAD_REF  $2"
-echo "$GITHUB_SHA"
-
 ELVIS_VERSION='1.0.0-emqx-1'
 
 base=${GITHUB_BASE_REF:-$1}
-elvis_version="${3:-$ELVIS_VERSION}"
+elvis_version="${2:-$ELVIS_VERSION}"
 
-echo "$elvis_version"
-echo "$base"
+echo "elvis -v: $elvis_version"
+echo "git diff base: $base"
 
-if [ ! -f ./elvis ] || [ "$(./elvis -v | grep -oE '[1-9]+\.[0-9]+\.[0-9]+\-emqx-[0-9]+')" != "$ELVIS_VERSION" ]; then
+if [ ! -f ./elvis ] || [ "$(./elvis -v | grep -oE '[1-9]+\.[0-9]+\.[0-9]+\-emqx-[0-9]+')" != "$elvis_version" ]; then
     curl  -fLO "https://github.com/emqx/elvis/releases/download/$elvis_version/elvis"
     chmod +x ./elvis
 fi
 
 git fetch origin "$base"
-git checkout -b refBranch HEAD
-git diff --name-only origin/"$base" refBranch
 
-bad_file_count=0
-for n in $(git diff --name-only origin/"$base" refBranch); do
+git_diff() {
+    git diff --name-only origin/"$base"...HEAD
+}
 
+bad_file_count=0
+for n in $(git_diff); do
     if ! ./elvis rock "$n"; then
         bad_file_count=$(( bad_file_count + 1))
     fi