이 작업은 GO 코드에서 버그 및 기타 문제를 찾기 위해 정적 체크를 실행합니다.
가장 간단하게, 기존 워크 플로의 단계로 dominikh/staticcheck-action 추가하십시오. 최소한의 워크 플로는 다음과 같습니다.
name : " CI "
on : ["push", "pull_request"]
jobs :
ci :
name : " Run CI "
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
with :
fetch-depth : 1
- uses : dominikh/staticcheck-action@v1
with :
version : " latest "테스트를 실행하는보다 진보 된 예제, 여러 OSS 및 GO 버전에서 GO VET 및 STATICCheck가 다음과 같습니다.
name : " CI "
on : ["push", "pull_request"]
jobs :
ci :
name : " Run CI "
strategy :
fail-fast : false
matrix :
os : ["windows-latest", "ubuntu-latest", "macOS-latest"]
go : ["1.18.x", "1.19.x"]
dir : ["server", "client"]
runs-on : ${{ matrix.os }}
steps :
- uses : actions/checkout@v2
with :
fetch-depth : 1
- uses : WillAbides/[email protected]
with :
go-version : ${{ matrix.go }}
- run : " go test ./... "
- run : " go vet ./... "
- uses : dominikh/staticcheck-action@v1
with :
version : " latest "
install-go : false
cache-key : ${{ matrix.go }}
working-directory : ${{ matrix.dir }}Workflows 작성 및 조정 방법에 대한 광범위한 문서에 대한 조치에 대한 Github의 문서를 참조하십시오.
version사용할 정적 체크 버전. 새로운 버전의 staticCheck은 빌드를 깨뜨릴 수있는 새로운 수표를 도입하기 때문에 특정 버전을 고정하고 STATICECK를 의식적으로 업데이트하는 것이 좋습니다.
latest 버전의 STATICCHECK을 설치하는 최신 정보는 기본값입니다.
min-go-versionGO의 최소 버전의 정적 체크는 진단을보고합니다. 즉, 일부 진단은 이전 버전의 GO에 적용되지 않습니다.
UNSET 인 경우 GO.MOD에 지정된 GO 버전으로 기본값이됩니다. 기본값은 일반적으로 원하는 것입니다.
자세한 내용은 https://staticcheck.io/docs/running-staticcheck/cli/#go를 참조하십시오.
build-tags -tags 플래그를 통해 정적 체크로 전달되는 태그를 구축하십시오.
install-go 작업이 최신 버전의 GO를 설치하고 실행 해야하는지 STATICCheck을 설치 해야하는지 여부. STATICCHECK가 작업에서 유일한 조치 인 경우이 옵션은 일반적으로 기본값의 true 값에 남을 수 있습니다. 예를 들어 단위 테스트를 실행하는 등 STATICCHECK를 실행하기 전에 작업이 이미 설치된 경우이 옵션을 false 로 설정하는 것이 가장 좋습니다.
STATICCheck의 최신 릴리스는 당시 Go의 마지막 마이너 릴리스와 함께 작동합니다.
cache-key 캐시 키에 포함 할 문자열은 기본값 외에 runner.os 입니다. 여러 GO 버전을 사용할 때 유용합니다.
working-directory작업 디렉토리의 상대 경로는 정적 체크를 실행해야합니다. 이는 하나의 리포지토리 내에서 여러 프로젝트를 처리 할 때 유용합니다.
디렉토리 matrix 와 쉽게 결합 할 수 있습니다. 위의 고급 예제를 참조하십시오.