name: Build project # run automatically when a push or pull request is triggered on: [push, pull_request] jobs: build: name: quality-and-build runs-on: ubuntu-latest env: # Limit to 1 job for my little VPS CARGO_BUILD_JOBS: 1 steps: - name: Checkout code uses: actions/checkout@v4 - name: Install Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: stable components: rustfmt, clippy - name: Check formatting run: cargo fmt --all -- --check - name: Lint with Clippy run: cargo clippy -- -D warnings - name: Run build (Debug mode) run: cargo build sonarqube: needs: build name: SonarQube Trigger runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Download SonarQube Scanner run: | curl -sSLo sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip unzip sonar-scanner.zip - name: Run SonarQube Scan run: | ./sonar-scanner-*/bin/sonar-scanner \ -Dsonar.projectKey=UdpSocketServer \ -Dsonar.sources=. \ -Dsonar.host.url=${{ secrets.SONARQUBE_HOST }} \ -Dsonar.login=${{ secrets.SONARQUBE_TOKEN }}