--- name: iOS - Build and test Rust FFI (mullvad-ios and mullvad-api) on: pull_request: paths: - .github/workflows/ios-rust-ffi.yml - clippy.toml - '**/*.rs' workflow_dispatch: permissions: {} jobs: build-ios: runs-on: macos-latest strategy: matrix: target: [aarch64-apple-ios, aarch64-apple-ios-sim] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Install Rust uses: actions-rs/toolchain@v1.0.6 with: toolchain: stable target: ${{ matrix.target }} default: true - name: Build and test crates shell: bash env: RUSTFLAGS: --deny warnings # NOTE: Tests actually target macOS here. This is because we do not have an iOS runner # handy. run: | source env.sh time cargo build --locked --verbose --lib -p mullvad-ios -p mullvad-api --target ${{ matrix.target }} time cargo test --locked --verbose --lib -p mullvad-ios -p mullvad-api clippy-check-ios: runs-on: macos-latest strategy: matrix: target: [aarch64-apple-ios, aarch64-apple-ios-sim] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Install Rust uses: actions-rs/toolchain@v1.0.6 with: toolchain: stable target: ${{ matrix.target }} default: true - name: Clippy check shell: bash env: RUSTFLAGS: --deny warnings run: | source env.sh time cargo clippy --locked --all-targets --no-default-features -p mullvad-ios -p mullvad-api \ --target ${{ matrix.target }} time cargo clippy --locked --all-targets --all-features -p mullvad-ios -p mullvad-api \ --target ${{ matrix.target }}