Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,41 @@ jobs:
path: ./target/x86_64-unknown-linux-musl/${{ env.CARGO_BUILD_PROFILE }}/pixi
retention-days: 14

build-binary-linux-riscv64gc:
needs: determine_changes
if: ${{ needs.determine_changes.outputs.code == 'true' || github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
name: "build binary | linux riscv64gc"
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
with:
persist-credentials: false
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
- name: "Setup cross-compilation toolchain"
run: |
sudo apt update
sudo apt install -y gcc-riscv64-linux-gnu
rustup target add riscv64gc-unknown-linux-gnu
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
with:
save-if: ${{ github.ref == 'refs/heads/main' }}
- name: "Build"
env:
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER: riscv64-linux-gnu-gcc
CC_riscv64gc_unknown_linux_gnu: riscv64-linux-gnu-gcc
run: >
cargo build
--locked
--target riscv64gc-unknown-linux-gnu
--profile $CARGO_BUILD_PROFILE
--features self_update
- name: "Upload binary"
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: pixi-linux-riscv64gc-${{ github.sha }}
path: ./target/riscv64gc-unknown-linux-gnu/${{ env.CARGO_BUILD_PROFILE }}/pixi
retention-days: 14

build-binary-macos-aarch64:
needs: determine_changes
if: ${{ needs.determine_changes.outputs.code == 'true' || github.ref == 'refs/heads/main' }}
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,12 @@ jobs:
name: artifacts-pixi-aarch64-pc-windows-msvc.exe
path: unpacked-artifacts/pixi-aarch64-pc-windows-msvc.exe

- name: Upload unpacked artifact for pixi-riscv64gc-unknown-linux-gnu
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: artifacts-pixi-riscv64gc-unknown-linux-gnu
path: unpacked-artifacts/pixi-riscv64gc-unknown-linux-gnu

# Upload installer scripts
- name: Upload install.sh
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
Expand Down
5 changes: 5 additions & 0 deletions dist-workspace.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ targets = [
"aarch64-apple-darwin",
"aarch64-unknown-linux-musl",
"aarch64-pc-windows-msvc",
"riscv64gc-unknown-linux-gnu",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how did you choose the architecture abbreviation here? Why riscv64gc rather than (say) riscv64?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I see from conda/rattler#1949 that you're following rust terminology? Can you add a comment about any/all this in conda-forge/conda-forge.github.io#1744? I'd like to avoid having different names for the same architecture in different places. I'm willing to be convinced that we should follow rust's naming if necessary, but by default I was expecting to use riscv64.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C.f. also conda/conda-build#5884; I'd expect to be able to do

  - if: riscv64
    then:
      - something

in v1 recipes

"x86_64-apple-darwin",
"x86_64-unknown-linux-musl",
"x86_64-pc-windows-msvc",
Expand Down Expand Up @@ -49,10 +50,14 @@ aarch64-pc-windows-msvc = "windows_x64_2025_large"
x86_64-pc-windows-msvc = "windows_x64_2025_large"
# Linux targets
aarch64-unknown-linux-musl = "8core_ubuntu_latest_runner"
riscv64gc-unknown-linux-gnu = "ubuntu-latest"
x86_64-unknown-linux-musl = "8core_ubuntu_latest_runner"

[dist.dependencies.apt]
gcc-aarch64-linux-gnu = { version = '*', targets = [
"aarch64-unknown-linux-gnu",
"aarch64-unknown-linux-musl",
] }
gcc-riscv64-linux-gnu = { version = '*', targets = [
"riscv64gc-unknown-linux-gnu",
] }
Loading