Skip to content

Add Redox OS CI#394

Merged
Stebalien merged 5 commits intomasterfrom
copilot/add-ci-for-redoxos
Feb 24, 2026
Merged

Add Redox OS CI#394
Stebalien merged 5 commits intomasterfrom
copilot/add-ci-for-redoxos

Conversation

Copy link
Contributor

Copilot AI commented Feb 23, 2026

The codebase has Redox-specific code paths (e.g., #[cfg(target_os = "redox")] in src/file/imp/unix.rs) but no CI coverage, making it impossible to safely modify that code.

Changes

  • .github/workflows/redox.yml – New CI pipeline for RedoxOS, triggered on push/PR to master. Runs on the standard ubuntu-latest runner, installs Rust via dtolnay/rust-toolchain@stable, installs redoxer directly from the upstream git repository (cargo install --git https://gitlab.redox-os.org/redox-os/redoxer.git redoxer) to pick up the latest toolchain hash fix, then runs redoxer build and redoxer test.
Original prompt

This section details on the original issue you should resolve

<issue_title>[CI] Redox CI</issue_title>
<issue_description>We don't currently have any CI for Redox (even a cross-compile check). Unfortunately, we do have Redox specific code. Unfortunately, this makes it impossible for me to touch said code...</issue_description>

<agent_instructions>Please implement CI for RedoxOS. You should use the redoxer docker container to build and test this project.</agent_instructions>

Comments on the Issue (you are @copilot in this section)

@Stebalien It looks like we can use [redoxer](https://github.com/redox-os/redoxer?tab=readme-ov-file) for this. Specifically, it has a [docker](https://hub.docker.com/r/redoxos/redoxer) image that we can likely use in CI.

We're probably going to want an entirely separate pipeline as we have in freebsd.</comment_new>


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: Stebalien <310393+Stebalien@users.noreply.github.com>
Copilot AI changed the title [WIP] Add CI for RedoxOS using redoxer docker Add Redox OS CI Feb 23, 2026
@Stebalien
Copy link
Owner

Co-authored-by: Stebalien <310393+Stebalien@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 23, 2026

@copilot please run the entire job in the container. See https://docs.github.com/en/actions/how-tos/write-workflows/choose-where-workflows-run/run-jobs-in-a-container

Done in 0f59c99. The job now uses container: redoxos/redoxer so every step runs inside the container, and the build/test steps just call redoxer build / redoxer test directly.

@Stebalien
Copy link
Owner

@copilot it looks like that's not working right now. Let's try setting up redoxer ourselves without docker.

  1. Use the standard GitHub Actions Ubuntu image.
  2. Run cargo install redoxer to install redoxer.
  3. Then run redoxer build and redoxer test.

Please ignore the MacOS CI failure, that's just a transient failure.

Copy link
Contributor Author

Copilot AI commented Feb 23, 2026

@copilot it looks like that's not working right now. Let's try setting up redoxer ourselves without docker.

  1. Use the standard GitHub Actions Ubuntu image.
    ...

Done in 1d8b2d9. The workflow now uses the standard Ubuntu runner, installs Rust via dtolnay/rust-toolchain@stable, then cargo install redoxer, and runs redoxer build / redoxer test directly — no Docker container involved.

@Stebalien
Copy link
Owner

@copilot it looks like this version has the same issue. Please revert to the previous commit.

Copy link
Contributor Author

Copilot AI commented Feb 23, 2026

@copilot it looks like this version has the same issue. Please revert to the previous commit.

Reverted in 2b00641 — back to container: redoxos/redoxer with redoxer build / redoxer test.

@Stebalien Stebalien force-pushed the copilot/add-ci-for-redoxos branch from 2b00641 to 1d8b2d9 Compare February 23, 2026 16:52
@Stebalien
Copy link
Owner

I've un-reverted and switched back to cargo install redoxer. Looking at upstream (https://gitlab.redox-os.org/redox-os/redoxer) it seems that they've recently switched how they hash toolchain downloads, likely to solve this issue.

@copilot please switch to cargo installing from upstream's git directly.

Copy link
Contributor Author

Copilot AI commented Feb 23, 2026

I've un-reverted and switched back to cargo install redoxer. Looking at upstream (https://gitlab.redox-os.org/redox-os/redoxer) it seems that they've recently switched how they hash toolchain downlo...

Done in a91930f. cargo install redoxer is now replaced with cargo install --git https://gitlab.redox-os.org/redox-os/redoxer.git redoxer to pull directly from upstream and pick up the toolchain hash fix.

@Stebalien
Copy link
Owner

@willnode I've been trying to get redox CI up and running here but I'm running into the issue you described in https://gitlab.redox-os.org/redox-os/redoxer/-/merge_requests/78 every time I run the job. Interestingly:

  1. It's downloading the full 513M most times time (doesn't look like some kind of rate-limit) but the last run cut off the download at 106M, so it may be a timeout or size limit?
  2. I'm getting a different incorrect hash each time (I'm not simply downloading the wrong file).
100  427M    0  427M    0     0  42.6M      0 --:--:--  0:00:10 --:--:-- 45.8M
100  471M    0  471M    0     0  42.8M      0 --:--:--  0:00:11 --:--:-- 45.7M
100  513M    0  513M    0     0  43.0M      0 --:--:--  0:00:11 --:--:-- 45.3M
sha256sum not match for "relibc-install.tar.gz":
   actual: 96f97464f569d6f81671600f10c29b77af5b914eaa350cc0a826ba7f2187103d
 expected: 63c448e238aff4bc8e773662f06a961d4077c6662a7edb461b33b1f7441f0302
redoxer cargo: unable to init toolchain
100  513M    0  513M    0     0  4177k      0 --:--:--  0:02:05 --:--:-- 2612k
sha256sum not match for "relibc-install.tar.gz":
   actual: b171edb4dd71321b5bfff359362c85f9bad466665f28411672b8aee4132bbac8
 expected: 63c448e238aff4bc8e773662f06a961d4077c6662a7edb461b33b1f7441f0302
redoxer cargo: unable to init toolchain

The cut-off run:

100 67.1M    0 67.1M    0     0  12.2M      0 --:--:--  0:00:05 --:--:-- 12.6M
100 82.0M    0 82.0M    0     0  12.6M      0 --:--:--  0:00:06 --:--:-- 12.8M
100 94.5M    0 94.5M    0     0  12.6M      0 --:--:--  0:00:07 --:--:-- 13.2M
100  106M    0  106M    0     0  12.8M      0 --:--:--  0:00:08 --:--:-- 13.5M
sha256sum not match for "relibc-install.tar.gz":
   actual: f5a15deded4b1f357f73774a7fad2cdf29cf83e0e8d971269cb923c19de7e82f
 expected: 63c448e238aff4bc8e773662f06a961d4077c6662a7edb461b33b1f7441f0302

Any ideas or is there anything I can do to help solve this?

@willnode
Copy link

Hi! Thanks for looking into this, I recommend use the official redoxer image: https://hub.docker.com/r/redoxos/redoxer

This having the benefit of toolchain and image got prebuilt, so no shasum issue and guaranteed to work. To run cargo test just do redoxer test.

@Stebalien
Copy link
Owner

Hm. That's the first thing I tried (0f59c99) and redoxer build seemed to want to build the toolchain. I guess I'll try just redoxer test.

@Stebalien Stebalien force-pushed the copilot/add-ci-for-redoxos branch from a91930f to 4d425d1 Compare February 24, 2026 02:45
@Stebalien
Copy link
Owner

It still seems to want to build the toolchain: https://github.com/Stebalien/tempfile/actions/runs/22334406221/job/64623588169?pr=394

@willnode
Copy link

Ah ok I know the problem is. So the toolchain saved on root of that image. You need to set a way such that the user is root, not github.

@willnode
Copy link

Maybe you can try running sudo cp -a /root/.redoxer /github/home/.redoxer beforehand.

@Stebalien Stebalien force-pushed the copilot/add-ci-for-redoxos branch from 4d425d1 to b99c20c Compare February 24, 2026 02:57
@Stebalien Stebalien force-pushed the copilot/add-ci-for-redoxos branch from b99c20c to 55a66dd Compare February 24, 2026 03:00
@willnode
Copy link

I think it's going to an infinite loop

@Stebalien
Copy link
Owner

I think it is too. But at least that's an issue in tempfile.

Thanks for your help debugging this!

@Stebalien
Copy link
Owner

Ah, no, was just the test_make_uds_conflict test. It keeps creating sockets until it can't create a temporary file with a unique name. It... may be trying a bit too hard, but it's usually a LOT faster.

@Stebalien Stebalien marked this pull request as ready for review February 24, 2026 03:19
@Stebalien Stebalien merged commit 29d6ac5 into master Feb 24, 2026
20 checks passed
@Stebalien Stebalien deleted the copilot/add-ci-for-redoxos branch February 24, 2026 03:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI] Redox CI

3 participants