main.yml 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. name: main
  2. on:
  3. push:
  4. pull_request:
  5. jobs:
  6. jshint:
  7. runs-on: ubuntu-22.04
  8. steps:
  9. - uses: actions/checkout@v2
  10. - run: sudo npm install -g jshint; make jshint
  11. test:
  12. runs-on: ubuntu-22.04
  13. steps:
  14. - name: checkout
  15. uses: actions/checkout@v2
  16. - uses: actions/cache@v2
  17. id: cache-rustup
  18. with:
  19. path: ~/.cache/rustup/
  20. key: ${{ runner.os }}-rustup
  21. - name: rustup
  22. run: |
  23. rustup toolchain install stable
  24. rustup target add wasm32-unknown-unknown
  25. rustup component add rustfmt
  26. - name: apt install
  27. run: sudo apt update -qq; sudo apt install nasm gdb qemu-system-x86 libc6-dev-i386
  28. - name: make all-debug
  29. run: make all-debug
  30. - name: make all
  31. run: make all
  32. - uses: actions/cache@v2
  33. id: cache-kvm-unit-test
  34. with:
  35. path: tests/kvm-unit-tests/
  36. key: ${{ runner.os }}-kvm-unit-test
  37. - name: build kvm-unit-test
  38. if: steps.cache-kvm-unit-test.outputs.cache-hit != 'true'
  39. run: (cd tests/kvm-unit-tests && ./configure && make x86/realmode.flat)
  40. - name: kvm-unit-test
  41. run: tests/kvm-unit-tests/run.js tests/kvm-unit-tests/x86/realmode.flat
  42. - uses: actions/cache@v2
  43. id: cache-nasmtests
  44. with:
  45. path: tests/nasm/build/
  46. key: ${{ runner.os }}-nasmtests
  47. - name: build namsmtests
  48. if: steps.cache-nasmtests.outputs.cache-hit != 'true'
  49. run: tests/nasm/create_tests.js; make -C tests/nasm all; ./tests/nasm/gen_fixtures.js
  50. - name: nasmtests
  51. run: MAX_PARALLEL_TESTS=1 ./tests/nasm/run.js
  52. - name: nasmtests-force-jit
  53. run: MAX_PARALLEL_TESTS=1 ./tests/nasm/run.js --force-jit
  54. - name: rust-test
  55. run: make rust-test
  56. - uses: actions/cache@v2
  57. id: cache-images
  58. with:
  59. path: images/
  60. key: ${{ runner.os }}-images-v2
  61. - name: get images
  62. if: steps.cache-images.outputs.cache-hit != 'true'
  63. run: wget -nv -P images/ https://k.copy.sh/{linux.iso,linux3.iso,linux4.iso,buildroot-bzimage.bin,TinyCore-11.0.iso,oberon.img,msdos.img,openbsd-floppy.img,kolibri.img,windows101.img,os8.img,freedos722.img,mobius-fd-release5.img}
  64. - name: api-tests
  65. run: make api-tests
  66. - name: qemutests
  67. run: make qemutests
  68. - name: qemutests-release
  69. run: make qemutests-release
  70. - name: jitpagingtests
  71. run: make jitpagingtests
  72. - name: integration tests
  73. run: MAX_PARALLEL_TESTS=1 make tests
  74. - name: expect tests
  75. run: make expect-tests