88  unit :
99    runs-on : ubuntu-latest 
1010    name : All 
11+     env :
12+       RUNGOGENERATE : false 
1113    steps :
1214      - uses : actions/checkout@v2 
1315        with :
1416          submodules : recursive 
1517      - uses : actions/setup-go@v2 
1618        with :
17-           go-version : " 1.16.x" 
19+           go-version : " 1.17.x" 
20+       - name : Run repo-specific setup 
21+         uses : ./.github/actions/go-check-setup 
22+         if : hashFiles('./.github/actions/go-check-setup') != '' 
23+       - name : Read config 
24+         if : hashFiles('./.github/workflows/go-check-config.json') != '' 
25+         run : | 
26+           if jq -re .gogenerate ./.github/workflows/go-check-config.json; then 
27+             echo "RUNGOGENERATE=true" >> $GITHUB_ENV 
28+           fi 
1829name : Install staticcheck 
19-         run : go install honnef.co/go/tools/cmd/staticcheck@434f5f3816b358fe468fa83dcba62d794e7fe04b   #  2021.1 (v0.2.0 )
30+         run : go install honnef.co/go/tools/cmd/staticcheck@df71e5d0e0ed317ebf43e6e59cf919430fa4b8f2   #  2021.1.1  (v0.2.1 )
2031      - name : Check that go.mod is tidy 
21-         uses : protocol/multiple-go-modules@v1.0  
32+         uses : protocol/multiple-go-modules@v1.2  
2233        with :
2334          run : | 
2435            go mod tidy 
@@ -37,14 +48,27 @@ jobs:
3748          fi 
3849name : go vet 
3950        if : ${{ success() || failure() }}  #  run this step even if the previous one failed
40-         uses : protocol/multiple-go-modules@v1.0  
51+         uses : protocol/multiple-go-modules@v1.2  
4152        with :
4253          run : go vet ./... 
4354      - name : staticcheck 
4455        if : ${{ success() || failure() }}  #  run this step even if the previous one failed
45-         uses : protocol/multiple-go-modules@v1.0  
56+         uses : protocol/multiple-go-modules@v1.2  
4657        with :
4758          run : | 
4859            set -o pipefail 
4960            staticcheck ./... | sed -e 's@\(.*\)\.go@./\1.go@g' 
61+ name : go generate 
62+         uses : protocol/multiple-go-modules@v1.2 
63+         if : (success() || failure()) && env.RUNGOGENERATE == 'true' 
64+         with :
65+           run : | 
66+             git clean -fd # make sure there aren't untracked files / directories 
67+             go generate ./... 
68+             # check if go generate modified or added any files 
69+             if ! $(git add . && git diff-index HEAD --exit-code --quiet); then 
70+               echo "go generated caused changes to the repository:" 
71+               git status --short 
72+               exit 1 
73+             fi 
5074
0 commit comments