cache-toolchain.yml 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. name: Cache toolchain
  2. on: workflow_call
  3. jobs:
  4. build:
  5. runs-on: ubuntu-latest
  6. steps:
  7. - uses: actions/checkout@v3
  8. - name: Cache DragonOS GCC
  9. id: cache-dragonos-gcc
  10. uses: actions/cache@v3
  11. env:
  12. cache-name: cache-dragonos-gcc
  13. with:
  14. path: |
  15. ~/opt
  16. ~/.bashrc
  17. key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('tools/build_gcc_toolchain.sh') }}
  18. - if: ${{ steps.cache-dragonos-gcc.outputs.cache-hit != 'true' }}
  19. name: build dragonos-gcc
  20. continue-on-error: true
  21. run: |
  22. bash tools/build_gcc_toolchain.sh -f
  23. - uses: ./.github/actions/install-apt-packages
  24. - name: Cache build tools
  25. id: cache-build-tools
  26. uses: actions/cache@v3
  27. env:
  28. cache-name: cache-build-tools
  29. dadk_version: 0.1.11
  30. with:
  31. path: |
  32. ~/.cargo
  33. ~/.rustup
  34. ~/.bashrc
  35. ~/opt
  36. key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.dadk_version }}-${{ hashFiles('.github/workflows/cache-toolchain.yml') }}-${{ hashFiles('tools/install_musl_gcc.sh') }}
  37. - if: ${{ steps.cache-build-tools.outputs.cache-hit != 'true' }}
  38. name: Install toolchain
  39. continue-on-error: false
  40. run: |
  41. USE_GITHUB=1 bash tools/install_musl_gcc.sh
  42. cargo install cargo-binutils
  43. rustup toolchain install nightly-x86_64-unknown-linux-gnu
  44. rustup toolchain install nightly-2024-07-23-x86_64-unknown-linux-gnu
  45. rustup toolchain install nightly-2023-08-15-x86_64-unknown-linux-gnu
  46. rustup component add rust-src --toolchain nightly-2024-07-23-x86_64-unknown-linux-gnu
  47. rustup component add rust-src --toolchain nightly-2023-08-15-x86_64-unknown-linux-gnu
  48. rustup target add x86_64-unknown-none --toolchain nightly-2024-07-23-x86_64-unknown-linux-gnu
  49. rustup target add x86_64-unknown-none --toolchain nightly-2023-08-15-x86_64-unknown-linux-gnu
  50. rustup toolchain install nightly-2024-07-23-riscv64gc-unknown-linux-gnu --force-non-host
  51. rustup toolchain install nightly-2023-08-15-riscv64gc-unknown-linux-gnu --force-non-host
  52. rustup target add riscv64gc-unknown-none-elf --toolchain nightly-2024-07-23-riscv64gc-unknown-linux-gnu
  53. rustup target add riscv64imac-unknown-none-elf --toolchain nightly-2024-07-23-riscv64gc-unknown-linux-gnu
  54. rustup target add riscv64gc-unknown-none-elf --toolchain nightly-2023-08-15-riscv64gc-unknown-linux-gnu
  55. rustup target add riscv64imac-unknown-none-elf --toolchain nightly-2023-08-15-riscv64gc-unknown-linux-gnu
  56. rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
  57. rustup component add rust-src
  58. rustup component add llvm-tools-preview
  59. rustup component add rustfmt
  60. rustup component add rustfmt --toolchain nightly-x86_64-unknown-linux-gnu
  61. rustup component add rustfmt --toolchain nightly-2024-07-23-x86_64-unknown-linux-gnu
  62. rustup component add rustfmt --toolchain nightly-2023-08-15-x86_64-unknown-linux-gnu
  63. rustup component add rustfmt --toolchain nightly-2024-07-23-riscv64gc-unknown-linux-gnu
  64. rustup component add rustfmt --toolchain nightly-2023-08-15-riscv64gc-unknown-linux-gnu
  65. rustup default nightly-2024-07-23
  66. cargo install dadk --version 0.1.11
  67. userapp_musl_toolchain="nightly-2023-08-15-x86_64-unknown-linux-gnu"
  68. rustup toolchain install ${userapp_musl_toolchain}
  69. rustup component add --toolchain ${userapp_musl_toolchain} rust-src
  70. rustup target add --toolchain ${userapp_musl_toolchain} x86_64-unknown-linux-musl
  71. rustup target add x86_64-unknown-linux-musl --toolchain nightly-2024-07-23-x86_64-unknown-linux-gnu
  72. rustup component add rust-src --toolchain nightly-2024-07-23-x86_64-unknown-linux-gnu