Alexander Kopachov 3 лет назад
Родитель
Сommit
0fed6185bb
4 измененных файлов с 82 добавлено и 8 удалено
  1. 58 0
      .github/workflows/sonarcloud.yml
  2. 2 8
      fbt.ps1
  3. 7 0
      sonar-build
  4. 15 0
      sonar-project.properties

+ 58 - 0
.github/workflows/sonarcloud.yml

@@ -0,0 +1,58 @@
+name: SonarCloud
+on:
+  workflow_dispatch:
+  pull_request:
+    types: [opened, synchronize, reopened]
+  push:
+    branches:
+      - master
+jobs:
+  build:
+    name: Build and analyze
+    runs-on: ubuntu-latest
+    env:
+      SONAR_SCANNER_VERSION: 4.7.0.2747
+      SONAR_SERVER_URL: "https://sonarcloud.io"
+      BUILD_WRAPPER_OUT_DIR: "$HOME/.sonar/build_wrapper_output" # Directory where build-wrapper output will be placed
+      FBT_NO_SYNC: "true"
+      TARGETS: f7
+      DEFAULT_TARGET: f7
+    steps:
+      - name: 'Decontaminate previous build leftovers'
+        run: |
+          if [ -d .git ]; then
+            git submodule status || git checkout "$(git rev-list --max-parents=0 HEAD | tail -n 1)"
+          fi
+      - uses: actions/checkout@v2
+        with:
+          fetch-depth: 0  # Shallow clones should be disabled for a better relevancy of analysis
+          submodules: 'recursive'
+      - name: Set up JDK 11
+        uses: actions/setup-java@v1
+        with:
+          java-version: 11
+      - name: Download and set up sonar-scanner
+        env:
+          SONAR_SCANNER_DOWNLOAD_URL: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${{ env.SONAR_SCANNER_VERSION }}-linux.zip
+        run: |
+          mkdir -p $HOME/.sonar
+          curl -sSLo $HOME/.sonar/sonar-scanner.zip ${{ env.SONAR_SCANNER_DOWNLOAD_URL }}
+          unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/
+          echo "$HOME/.sonar/sonar-scanner-${{ env.SONAR_SCANNER_VERSION }}-linux/bin" >> $GITHUB_PATH
+      - name: Download and set up build-wrapper
+        env:
+          BUILD_WRAPPER_DOWNLOAD_URL: ${{ env.SONAR_SERVER_URL }}/static/cpp/build-wrapper-linux-x86.zip
+        run: |
+          curl -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip ${{ env.BUILD_WRAPPER_DOWNLOAD_URL }}
+          unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/
+          echo "$HOME/.sonar/build-wrapper-linux-x86" >> $GITHUB_PATH
+      - name: Run build-wrapper
+        run: |
+          mkdir $HOME/.sonar/build_wrapper_output
+          build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} ./sonar-build
+      - name: Run sonar-scanner
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
+        run: |
+          sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}"

+ 2 - 8
fbt.ps1

@@ -16,14 +16,8 @@ else {
 
 
 Write-Host "Using $firmware_name firmware to run FBT"
 Write-Host "Using $firmware_name firmware to run FBT"
 
 
-if ((Test-Path -Path "$firmware_path\applications_user\totp") -ne $True) {
-    $mklink_command = "mklink /D $firmware_path\applications_user\totp ..\..\totp"
-    if (!(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
-        Start-Process -FilePath 'cmd' -ArgumentList ( "/C", "cd $PSScriptRoot & $mklink_command") -Verb RunAs
-    } else {
-        Invoke-Expression -Command $mklink_command
-    }    
-}
+$commandline_scons = "$firmware_path\site_scons\commandline.scons"
+((Get-Content -Path $commandline_scons -Raw) -replace 'applications_user','..') | Set-Content -Path $commandline_scons
 
 
 $builtin_totp_path = "$firmware_path\applications\plugins\totp"
 $builtin_totp_path = "$firmware_path\applications\plugins\totp"
 if ((Test-Path -Path $builtin_totp_path) -eq $True) {
 if ((Test-Path -Path $builtin_totp_path) -eq $True) {

+ 7 - 0
sonar-build

@@ -0,0 +1,7 @@
+#!/bin/bash
+
+pushd flipperzero-firmware_unleashed
+rm -rf applications/plugins/totp
+sed -i 's/applications_user/../' site_scons/commandline.scons
+./fbt fap_totp
+popd

+ 15 - 0
sonar-project.properties

@@ -0,0 +1,15 @@
+sonar.projectKey=akopachov_flipper-zero_authenticator
+sonar.organization=akopachov
+
+# This is the name and version displayed in the SonarCloud UI.
+#sonar.projectName=flipper-zero_authenticator
+#sonar.projectVersion=1.0
+
+# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
+sonar.sources=totp
+sonar.importSources=true
+
+# Encoding of the source code. Default is default system encoding
+#sonar.sourceEncoding=UTF-8
+
+sonar.scm.exclusions.disabled=true