diff --git a/.github/workflows/ci-riscv64.yml b/.github/workflows/ci-riscv64.yml new file mode 100644 index 000000000..947c579a7 --- /dev/null +++ b/.github/workflows/ci-riscv64.yml @@ -0,0 +1,37 @@ +# SPDX-FileCopyrightText: 2024 Christina Sørensen +# SPDX-License-Identifier: EUPL-1.2 +name: CI RISC-V +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} + cancel-in-progress: true +env: + CARGO_TERM_COLOR: always +jobs: + build-riscv64: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + targets: riscv64gc-unknown-linux-gnu + - name: Install cross + run: cargo install cross --git https://github.com/cross-rs/cross + - name: Build for riscv64gc-unknown-linux-gnu + run: cross build --release --target riscv64gc-unknown-linux-gnu + - name: Smoke test - version + run: target/riscv64gc-unknown-linux-gnu/release/eza --version || true + - name: Smoke test - list + run: target/riscv64gc-unknown-linux-gnu/release/eza -l . >/dev/null || true + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: eza-riscv64gc-gnu + path: target/riscv64gc-unknown-linux-gnu/release/eza diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..467630ae8 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,38 @@ +# SPDX-FileCopyrightText: 2024 Christina Sørensen +# SPDX-License-Identifier: EUPL-1.2 +name: Release +on: + push: + tags: + - 'v*' +permissions: + contents: write +jobs: + release-riscv64-gnu: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + targets: riscv64gc-unknown-linux-gnu + - name: Install cross + run: cargo install cross --git https://github.com/cross-rs/cross + - name: Build for riscv64gc-unknown-linux-gnu + run: cross build --release --target riscv64gc-unknown-linux-gnu + - name: Prepare release artifacts + run: | + mkdir -p dist + cp target/riscv64gc-unknown-linux-gnu/release/eza dist/ + cd dist + tar czf eza_riscv64gc-unknown-linux-gnu.tar.gz eza + zip eza_riscv64gc-unknown-linux-gnu.zip eza + sha256sum eza_riscv64gc-unknown-linux-gnu.tar.gz eza_riscv64gc-unknown-linux-gnu.zip > sha256sum.txt + - name: Upload release assets + uses: softprops/action-gh-release@v2 + with: + files: | + dist/eza_riscv64gc-unknown-linux-gnu.tar.gz + dist/eza_riscv64gc-unknown-linux-gnu.zip + dist/sha256sum.txt diff --git a/INSTALL.md b/INSTALL.md index bff14c05d..a1897155d 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -167,6 +167,19 @@ sudo rm -f /usr/local/bin/exa sudo ln -s /usr/local/bin/eza /usr/local/bin/exa ``` +### RISC-V (Linux) + +For RISC-V 64-bit systems running glibc-based distributions: + +```shell +wget -c https://github.com/eza-community/eza/releases/latest/download/eza_riscv64gc-unknown-linux-gnu.tar.gz -O - | tar xz +sudo chmod +x eza +sudo chown root:root eza +sudo mv eza /usr/local/bin/eza +``` + +Note: The RISC-V build targets GNU libc (glibc). Musl-based distributions are not currently supported. + ### Pixi (Linux, MacOS, and Windows) [![conda-forge package](https://img.shields.io/conda/vn/conda-forge/eza)](https://prefix.dev/channels/conda-forge/packages/eza)