Skip to content
Merged
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
6 changes: 3 additions & 3 deletions .github/workflows/developer_productivity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
#
# It only runs if the "nix-src" output of the "changes" job is true.
nix_shell_toolchain:
name: "Nix toolchain: cargo xtask run works"
name: "Nix toolchain: `cargo xtask run` works"
needs: changes
if: ${{ needs.changes.outputs.nix-src == 'true' }}
runs-on: ubuntu-latest
Expand All @@ -45,6 +45,6 @@ jobs:
run: nix-shell --pure --run "cargo --version"
- name: Run VM tests
run: |
COMMAND="cargo +stable xtask run --target x86_64 --headless --ci --tpm=v1"
echo "Executing in nix shell now: $COMMAND"
COMMAND="cargo xtask run --target x86_64 --headless --ci --tpm=v1"
echo "Executing in nix shell: $COMMAND"
nix-shell --pure --run "$COMMAND"
6 changes: 6 additions & 0 deletions nix/nixpkgs.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
let
sources = import ./sources.nix { };
rust-overlay = import sources.rust-overlay;
in
import sources.nixpkgs { overlays = [ rust-overlay ]; }

10 changes: 10 additions & 0 deletions nix/rust-toolchain.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Returns the Rust toolchain for Nix compliant to the rust-toolchain.toml file
# but without rustup.

{
# Comes from rust-overlay
rust-bin
}:

# Includes rustc, cargo, rustfmt, etc
rust-bin.fromRustupToolchainFile ../rust-toolchain.toml
36 changes: 24 additions & 12 deletions nix/sources.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
{
"nixpkgs": {
"branch": "nixos-23.05",
"description": "Nix Packages collection",
"homepage": null,
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6b0edc9c690c1d8a729f055e0d73439045cfda55",
"sha256": "1fdsnmkcz1h5wffjci29af4jrd68pzdvrhbs083niwqfd6ssm633",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/6b0edc9c690c1d8a729f055e0d73439045cfda55.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}
"nixpkgs": {
"branch": "nixos-23.05",
"description": "Nix Packages collection",
"homepage": null,
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "da4024d0ead5d7820f6bd15147d3fe2a0c0cec73",
"sha256": "1y12a4hgxx2lixrcbyhycwxvrrfik1lxjnwkprar0r6173rwy9ax",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/da4024d0ead5d7820f6bd15147d3fe2a0c0cec73.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"rust-overlay": {
"branch": "master",
"description": "Pure and reproducible nix overlay of binary distributed rust toolchains",
"homepage": "",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e485313fc485700a9f1f9b8b272ddc0621d08357",
"sha256": "1v1gq022rnni6mm42pxmw6c5yy9il4jb2l92irh154ax616x2rzd",
"type": "tarball",
"url": "https://github.com/oxalica/rust-overlay/archive/e485313fc485700a9f1f9b8b272ddc0621d08357.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}
}
3 changes: 3 additions & 0 deletions rust-toolchain.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
[toolchain]
channel = "stable"
Copy link
Member Author

Choose a reason for hiding this comment

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

I think this is fine: any concerns @nicholasbishop ?

Copy link
Member

Choose a reason for hiding this comment

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

Seems fine to me, but just for my own edification, why is this part of the change necessary?

Copy link
Member Author

Choose a reason for hiding this comment

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

So that rust-bin.fromRustupToolchainFile ../rust-toolchain.toml can pick the right toolchain for Nix.

# cargo, clippy, rustc, rust-docs, rustfmt, rust-std
profile = "default"
targets = ["aarch64-unknown-uefi", "i686-unknown-uefi", "x86_64-unknown-uefi"]
11 changes: 6 additions & 5 deletions shell.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
# "cargo xtask run|test|clippy". It uses rustup rather than a pinned rust
# toolchain.

{ sources ? import ./nix/sources.nix { }
, pkgs ? import sources.nixpkgs { }
}:

let
sources = import ./nix/sources.nix;
pkgs = import ./nix/nixpkgs.nix;
rustToolchain = pkgs.callPackage ./nix/rust-toolchain.nix {};
in
pkgs.mkShell {
nativeBuildInputs = with pkgs; [
# nix related stuff (such as dependency management)
Expand All @@ -17,7 +18,7 @@ pkgs.mkShell {
qemu

# Rust toolchain
rustup
rustToolchain

# Other
yamlfmt
Expand Down