diff --git a/.github/workflows/build-riscv.yml b/.github/workflows/build-riscv.yml index 36a3a1155a..9733dbaa7a 100644 --- a/.github/workflows/build-riscv.yml +++ b/.github/workflows/build-riscv.yml @@ -35,7 +35,7 @@ env: jobs: ubuntu-riscv64-native-sanitizer: - runs-on: RISCV64 + runs-on: ubuntu-24.04-riscv continue-on-error: true @@ -50,17 +50,18 @@ jobs: sudo apt-get update # Install necessary packages - sudo apt-get install -y libatomic1 libtsan2 gcc-14 g++-14 rustup cmake build-essential wget ccache git-lfs + sudo apt-get install -y libatomic1 libtsan2 gcc-14 g++-14 cmake build-essential wget git-lfs # Set gcc-14 and g++-14 as the default compilers sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100 - sudo ln -sf /usr/bin/gcc-14 /usr/bin/gcc - sudo ln -sf /usr/bin/g++-14 /usr/bin/g++ - # Install Rust stable version - rustup install stable - rustup default stable + if ! which rustc; then + # Install Rust stable version + sudo apt-get install -y rustup + rustup install stable + rustup default stable + fi git lfs install @@ -73,23 +74,12 @@ jobs: id: checkout uses: actions/checkout@v6 - - name: Setup ccache - run: | - # Unique cache directory per matrix combination - export CCACHE_DIR="$HOME/.ccache/sanitizer-${{ matrix.sanitizer }}-${{ matrix.build_type }}" - mkdir -p "$CCACHE_DIR" - - # Configure ccache - ccache --set-config=max_size=5G - ccache --set-config=compression=true - ccache --set-config=compression_level=6 - ccache --set-config=cache_dir="$CCACHE_DIR" - ccache --set-config=sloppiness=file_macro,time_macros,include_file_mtime,include_file_ctime - ccache --set-config=hash_dir=false - - # Export for subsequent steps - echo "CCACHE_DIR=$CCACHE_DIR" >> $GITHUB_ENV - echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV + # FIXME: Enable when ggml-org/ccache-action works on riscv64 + # - name: ccache + # uses: ggml-org/ccache-action@v1.2.21 + # with: + # key: ubuntu-riscv64-native-sanitizer-${{ matrix.sanytizer }}-${{ matrix.build_type }} + # save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} - name: Build id: cmake_build diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 491fc0c42f..f4ae367560 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -996,7 +996,7 @@ jobs: cmake --build build -j ${env:NUMBER_OF_PROCESSORS} ubuntu-cpu-riscv64-native: - runs-on: RISCV64 + runs-on: ubuntu-24.04-riscv steps: - name: Install dependencies @@ -1004,24 +1004,21 @@ jobs: sudo apt-get update # Install necessary packages - sudo apt-get install -y libatomic1 libtsan2 gcc-14 g++-14 rustup cmake build-essential libssl-dev wget ccache git-lfs + sudo apt-get install -y libatomic1 libtsan2 gcc-14 g++-14 cmake build-essential libssl-dev wget git-lfs # Set gcc-14 and g++-14 as the default compilers sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100 - sudo ln -sf /usr/bin/gcc-14 /usr/bin/gcc - sudo ln -sf /usr/bin/g++-14 /usr/bin/g++ - # Install Rust stable version - rustup install stable - rustup default stable + if ! which rustc; then + # Install Rust stable version + sudo apt-get install -y rustup + rustup install stable + rustup default stable + fi git lfs install - - name: Clone - id: checkout - uses: actions/checkout@v6 - - name: Check environment run: | uname -a @@ -1031,25 +1028,17 @@ jobs: cmake --version rustc --version - - name: Setup ccache - run: | - # Set unique cache directory for this job - export CCACHE_DIR="$HOME/.ccache/cpu-cmake-rv64-native" - mkdir -p "$CCACHE_DIR" + - name: Clone + id: checkout + uses: actions/checkout@v6 - # Configure ccache for optimal performance - ccache --set-config=max_size=5G - ccache --set-config=compression=true - ccache --set-config=compression_level=6 - ccache --set-config=cache_dir="$CCACHE_DIR" - - # Enable more aggressive caching - ccache --set-config=sloppiness=file_macro,time_macros,include_file_mtime,include_file_ctime - ccache --set-config=hash_dir=false - - # Export for subsequent steps - echo "CCACHE_DIR=$CCACHE_DIR" >> $GITHUB_ENV - echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV + # FIXME: Enable when ggml-org/ccache-action works on riscv64 + # - name: ccache + # uses: ggml-org/ccache-action@v1.2.21 + # with: + # key: ubuntu-cpu-riscv64-native + # evict-old-files: 1d + # save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} - name: Build id: cmake_build