ci.yaml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. - name: Test
  28. run: ./ci/test_full.sh
  29. # i586 presents floating point challenges for lack of SSE/SSE2
  30. i586:
  31. name: Test (i586)
  32. runs-on: ubuntu-latest
  33. steps:
  34. - name: System install
  35. run: |
  36. sudo apt-get update
  37. sudo apt-get install gcc-multilib
  38. - name: Rust install
  39. uses: actions-rs/toolchain@v1
  40. with:
  41. toolchain: stable
  42. profile: minimal
  43. override: true
  44. target: i586-unknown-linux-gnu
  45. - name: Checkout
  46. uses: actions/checkout@v1
  47. - name: Test
  48. uses: actions-rs/cargo@v1
  49. with:
  50. command: test
  51. args: --target i586-unknown-linux-gnu --all-features
  52. # try a target that doesn't have std at all
  53. no_std:
  54. name: No Std
  55. runs-on: ubuntu-latest
  56. steps:
  57. - name: Rust install
  58. uses: actions-rs/toolchain@v1
  59. with:
  60. toolchain: stable
  61. profile: minimal
  62. override: true
  63. target: thumbv6m-none-eabi
  64. - name: Checkout
  65. uses: actions/checkout@v1
  66. - name: Build
  67. uses: actions-rs/cargo@v1
  68. with:
  69. command: build
  70. args: --target thumbv6m-none-eabi --no-default-features --features i128
  71. - name: Build (libm)
  72. uses: actions-rs/cargo@v1
  73. with:
  74. command: build
  75. args: --target thumbv6m-none-eabi --no-default-features --features libm
  76. fmt:
  77. name: Format
  78. runs-on: ubuntu-latest
  79. steps:
  80. - name: Rust install
  81. uses: actions-rs/toolchain@v1
  82. with:
  83. toolchain: 1.42.0
  84. profile: minimal
  85. override: true
  86. components: rustfmt
  87. - name: Checkout
  88. uses: actions/checkout@v2
  89. - name: Check formatting
  90. uses: actions-rs/cargo@v1
  91. with:
  92. command: fmt
  93. args: --all -- --check