diff --git a/.github/workflows/code-analysis.yml b/.github/workflows/code-analysis.yml new file mode 100644 index 0000000..8b735ed --- /dev/null +++ b/.github/workflows/code-analysis.yml @@ -0,0 +1,50 @@ +name: Build for Sonar +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened] +jobs: + sonarcloud: + name: SonarCloud + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + #2 Setup Java + - name: Set Up Java + uses: actions/setup-java@v3.12.0 + with: + distribution: 'oracle' + java-version: '17' + #3 Setup Flutter + - name: Set Up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.24.3' + channel: 'stable' + #4 Install Dependencies + - name: Install Dependencies + run: flutter pub get + #5 Run flutter tests + - name: Run Flutter Tests + run: flutter test --coverage + #6 Run Sonar cloud scan + - name: SonarCloud Scan + env: + GITHUB_TOKEN: ${{ secrets.API_TOKEN_GITHUB }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: | + export SONAR_SCANNER_VERSION=6.2.1.4610 + export SONAR_SCANNER_HOME=$HOME/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux-x64 + curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux-x64.zip + unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ + export PATH=$SONAR_SCANNER_HOME/bin:$PATH + export SONAR_SCANNER_OPTS="-server" + sonar-scanner \ + -Dsonar.organization=fga-eps-mds-1 \ + -Dsonar.projectKey=fga-eps-mds_2024.2-ARANDU-APP\ + -Dsonar.sources=./lib \ + -Dsonar.host.url=https://sonarcloud.io \ No newline at end of file diff --git a/sonar-projects.properties b/sonar-projects.properties new file mode 100644 index 0000000..00e1deb --- /dev/null +++ b/sonar-projects.properties @@ -0,0 +1,13 @@ +sonar.projectKey=fga-eps-mds_2024.2-ARANDU-APP +sonar.organization=fga-eps-mds-1 + +# This is the name and version displayed in the SonarCloud UI. +#sonar.projectName=2024.2-ARANDU-APP +#sonar.projectVersion=1.0 + + +# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. +sonar.sources= ./lib + +# Encoding of the source code. Default is default system encoding +#sonar.sourceEncoding=UTF-8 \ No newline at end of file