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