client-targets.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. name: client_targets
  2. on:
  3. push:
  4. branches:
  5. - master
  6. pull_request:
  7. branches:
  8. - master
  9. paths:
  10. - "client/**"
  11. - ".github/workflows/client-targets.yml"
  12. - "ci/rust-version.sh"
  13. - "**/Cargo.toml"
  14. - "**/Cargo.lock"
  15. env:
  16. CARGO_TERM_COLOR: always
  17. jobs:
  18. android:
  19. if: github.repository == 'anza-xyz/agave'
  20. strategy:
  21. matrix:
  22. os:
  23. - ubuntu-22.04
  24. target:
  25. - x86_64-linux-android
  26. - aarch64-linux-android
  27. - i686-linux-android
  28. - armv7-linux-androideabi
  29. runs-on: ${{ matrix.os }}
  30. steps:
  31. - uses: actions/checkout@v6
  32. # This can be removed once cargo-ndk >= 3.5.4 is used.
  33. - name: Setup environment for Android NDK
  34. run: |
  35. echo "RANLIB=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib" >> $GITHUB_ENV
  36. - run: cargo install cargo-ndk@2.12.2
  37. - name: Setup Rust
  38. run: |
  39. source ci/rust-version.sh stable
  40. rustup target add --toolchain "$rust_stable" ${{ matrix.target }}
  41. - name: Stable build
  42. run: ./cargo stable ndk --target ${{ matrix.target }} build -p solana-client
  43. ios:
  44. if: github.repository == 'anza-xyz/agave'
  45. strategy:
  46. matrix:
  47. os:
  48. - macos-15
  49. target:
  50. - aarch64-apple-ios
  51. - x86_64-apple-ios
  52. - aarch64-apple-darwin
  53. - x86_64-apple-darwin
  54. runs-on: ${{ matrix.os }}
  55. steps:
  56. - uses: actions/checkout@v6
  57. - name: Setup Rust
  58. run: |
  59. source ci/rust-version.sh stable
  60. rustup target add --toolchain "$rust_stable" ${{ matrix.target }}
  61. - name: Stable build
  62. run: ./cargo stable build --target ${{ matrix.target }} -p solana-client
  63. error_reporting:
  64. needs:
  65. - android
  66. - ios
  67. if: failure() && github.event_name == 'push'
  68. uses: ./.github/workflows/error-reporting.yml
  69. secrets:
  70. WEBHOOK: ${{ secrets.SLACK_ERROR_REPORTING_WEBHOOK }}