ci.yaml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. name: CI
  2. on:
  3. push:
  4. branches:
  5. - staging
  6. - trying
  7. jobs:
  8. test:
  9. name: Test
  10. runs-on: ubuntu-latest
  11. strategy:
  12. matrix:
  13. rust: [1.8.0, 1.15.0, 1.20.0, 1.26.0, 1.31.0, stable, beta, nightly]
  14. steps:
  15. - name: Rust install
  16. uses: actions-rs/toolchain@v1
  17. with:
  18. toolchain: ${{ matrix.rust }}
  19. profile: minimal
  20. override: true
  21. - name: Checkout
  22. uses: actions/checkout@v2
  23. - name: Build
  24. uses: actions-rs/cargo@v1
  25. with:
  26. command: build
  27. args: --verbose
  28. - name: Test
  29. run: ./ci/test_full.sh
  30. # i586 presents floating point challenges for lack of SSE/SSE2
  31. i586:
  32. name: Test (i586)
  33. runs-on: ubuntu-latest
  34. steps:
  35. - name: System install
  36. run: |
  37. sudo apt-get update
  38. sudo apt-get install gcc-multilib
  39. - name: Rust install
  40. uses: actions-rs/toolchain@v1
  41. with:
  42. toolchain: stable
  43. profile: minimal
  44. override: true
  45. target: i586-unknown-linux-gnu
  46. - name: Checkout
  47. uses: actions/checkout@v1
  48. - name: Test
  49. uses: actions-rs/cargo@v1
  50. with:
  51. command: test
  52. args: --verbose --target i586-unknown-linux-gnu --all-features
  53. # try a target that doesn't have std at all
  54. no_std:
  55. name: No Std
  56. runs-on: ubuntu-latest
  57. steps:
  58. - name: Rust install
  59. uses: actions-rs/toolchain@v1
  60. with:
  61. toolchain: stable
  62. profile: minimal
  63. override: true
  64. target: thumbv6m-none-eabi
  65. - name: Checkout
  66. uses: actions/checkout@v1
  67. - name: Build
  68. uses: actions-rs/cargo@v1
  69. with:
  70. command: build
  71. args: --verbose --target thumbv6m-none-eabi --no-default-features --features i128
  72. - name: Build (libm)
  73. uses: actions-rs/cargo@v1
  74. with:
  75. command: build
  76. args: --verbose --target thumbv6m-none-eabi --no-default-features --features libm
  77. fmt:
  78. name: Format
  79. runs-on: ubuntu-latest
  80. steps:
  81. - name: Rust install
  82. uses: actions-rs/toolchain@v1
  83. with:
  84. toolchain: 1.42.0
  85. profile: minimal
  86. override: true
  87. components: rustfmt
  88. - name: Checkout
  89. uses: actions/checkout@v2
  90. - name: Check formatting
  91. uses: actions-rs/cargo@v1
  92. with:
  93. command: fmt
  94. args: --all -- --check