Enable sonarqube #5
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
name: Go | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Go 1.22 | |
uses: actions/setup-go@v3 | |
with: | |
go-version: 1.22 | |
- name: Cache Go modules | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/go/pkg/mod | |
~/.cache/go-build | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
# Agregado: Paso para actualizar dependencias con go mod tidy | |
- name: Update dependencies | |
run: go mod tidy | |
- name: Test with Coverage | |
run: go test ./... -coverprofile=coverage.txt -covermode=atomic | |
- name: Check Coverage | |
run: | | |
go tool cover -func=coverage.txt -o coverage-summary.txt | |
COVERAGE=$(go tool cover -func=coverage.txt | grep total: | awk '{print substr($3, 1, length($3)-1)}') | |
echo "Total test coverage: $COVERAGE%" | |
if (( $(echo "$COVERAGE < 70" |bc -l) )); then | |
echo "Test coverage is below 70%" | |
exit 1 | |
fi | |
env: | |
GO111MODULE: on | |
- name: Install golangci-lint | |
run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin latest | |
- name: Run golangci-lint | |
run: golangci-lint run ./... | |
env: | |
GO111MODULE: on | |
- name: SonarQube Scan | |
uses: sonarsource/sonarqube-scan-action@v2.1.0 | |
env: | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
SONAR_HOST_URL: ${{ vars.SONAR_HOST_URL }} | |
with: | |
args: > | |
-Dsonar.projectKey=httpclient-call-go | |
-Dsonar.sources=. | |
-Dsonar.go.coverage.reportPaths=coverage.out | |
-Dsonar.qualitygate.wait=true | |
-Dsonar.qualitygate.timeout=300 | |
-Dsonar.qualitygate.status=ERROR | |
-Dsonar.qualitygate.stop=true | |
-Dsonar.qualitygate.failIfNoQualityGate=true |