55 lines
1.4 KiB
YAML
55 lines
1.4 KiB
YAML
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 }}
|