Implement gradle rust plugin #5065
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
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/[email protected] | |
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 |