Olá, Igor!
Para implementar o SonarScanner no workflow do GitHub Actions, você pode seguir os passos descritos na aula. Vou resumir e destacar os pontos principais para te ajudar a entender melhor o processo.
Passos para Configurar o SonarScanner no GitHub Actions
Criação do Arquivo YAML:
- Crie um arquivo chamado
sonarqube-scan.yaml
na pasta workflows
do seu repositório. - Copie a estrutura básica do
trufflehog-scan.yaml
.
Configuração Básica:
- Altere o nome do workflow para
Sonarqube Scan Test
. - Mantenha o bloco
on
para definir a execução em cada pull request
na branch main
.
Definição do Job:
- Substitua o nome do job de
trufflehog
para sonarqube
. - Adicione o passo de checkout do repositório.
Instalação do SonarScanner:
- Adicione um passo para fazer o download do SonarScanner.
- Descompacte o arquivo
.zip
baixado.
Execução do SonarScanner:
- Adicione um passo para executar o SonarScanner com os parâmetros necessários.
- Utilize variáveis de ambiente para o host e o token do SonarQube.
Exemplo Completo do Arquivo YAML
name: Sonarqube Scan Test
on:
pull_request:
branches:
- main
jobs:
sonarqube:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Download SonarScanner
run: |
wget https://cdn3.gnarususercontent.com.br/3361-desenvolvimento-seguro/sonar-scanner-cli-5.0.1.3006-linux.zip
unzip sonar-scanner-cli-5.0.1.3006-linux.zip
- name: Run SonarScanner
run: |
./sonar-scanner-5.0.1.3006-linux/bin/sonar-scanner -X \
-Dsonar.projectKey=VollMed \
-Dsonar.sources=. \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=$SONARQUBE_TOKEN
env:
SONARQUBE_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
Configuração de Secrets no GitHub
- Adicionar o Token como Secret:
- No GitHub, vá para as configurações do repositório.
- Navegue até "Secrets and Variables" e adicione um novo secret chamado
SONARQUBE_TOKEN
com o valor do seu token do SonarQube.
Observação Importante
O erro mencionado no final do contexto ocorre porque o GitHub Actions não consegue acessar serviços locais. Você precisará de um SonarQube hospedado externamente. Uma solução seria usar um serviço de hospedagem para o SonarQube ou configurar um SonarQube em um servidor acessível pela internet.
Espero ter ajudado e bons estudos!