--- name: Rust - Run Clippy to check lints on: pull_request: paths: - .github/workflows/clippy.yml - clippy.toml - '**/*.rs' workflow_dispatch: permissions: {} jobs: prepare-android: name: Prepare Android container runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Use custom container image if specified if: ${{ github.event.inputs.override_container_image != '' }} run: echo "inner_container_image_android=${{ github.event.inputs.override_container_image }}" >> $GITHUB_ENV - name: Use default container image and resolve digest if: ${{ github.event.inputs.override_container_image == '' }} run: | echo "inner_container_image_android=$(cat ./building/android-container-image.txt)" >> $GITHUB_ENV outputs: container_image_android: ${{ env.inner_container_image_android }} clippy-check-desktop: name: Clippy linting, desktop strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Checkout submodules run: | git submodule update --init --depth=1 dist-assets/binaries git submodule update --init --recursive --depth=1 wireguard-go-rs - uses: actions-rs/toolchain@v1.0.6 with: toolchain: stable components: clippy override: true - name: Install build dependencies if: matrix.os == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install libdbus-1-dev - name: Install Go if: matrix.os == 'linux-latest' || matrix.os == 'macos-latest' uses: actions/setup-go@v5 with: go-version: 1.21.3 - name: Clippy check shell: bash env: RUSTFLAGS: --deny warnings run: | source env.sh time cargo clippy --locked --all-targets --no-default-features time cargo clippy --locked --all-targets --all-features clippy-check-android: name: Clippy linting, Android needs: prepare-android runs-on: ubuntu-latest container: image: ${{ needs.prepare-android.outputs.container_image_android }} steps: # Fix for HOME path overridden by GH runners when building in containers, see: # https://github.com/actions/runner/issues/863 - name: Fix HOME path run: echo "HOME=/root" >> $GITHUB_ENV - name: Checkout repository uses: actions/checkout@v4 - name: Checkout wireguard-go submodule run: | git config --global --add safe.directory '*' git submodule update --init --recursive --depth=1 wireguard-go-rs - name: Clippy check env: RUSTFLAGS: --deny warnings run: | cargo clippy --locked --all-targets --target x86_64-linux-android --package mullvad-jni --no-default-features cargo clippy --locked --all-targets --target x86_64-linux-android --package mullvad-jni --all-features