Skip to content
Open
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
39 changes: 39 additions & 0 deletions .github/workflows/binary-cache.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: "Deploy binary cache"

on:
push:
branches:
- "main"
paths:
- "src/**"
- "patches/**"
- "queries/**"
- "Cargo.*"
- "flake.*"

env:
CACHE_NAME: "YOUR_CACHE_NAME"

jobs:
build:
if: "startsWith(github.event.head_commit.message, 'bump:')"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
steps:
- uses: actions/checkout@v6
- name: Install nix
uses: DeterminateSystems/nix-installer-action@main
- name: Cache build artifacts
uses: DeterminateSystems/flakehub-cache-action@main
- uses: cachix/cachix-action@v16
with:
name: ${{ env.CACHE_NAME }}
# If you chose API tokens for write access OR if you have a private cache
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Build default package
run: |
nix build --no-link --print-out-paths | cachix push ${{ env.CACHE_NAME }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ target
target/
.repomap*
public/
result
11 changes: 9 additions & 2 deletions docs/content/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,16 @@ cargo install --path .

### With Nix

Run directly:

```bash
nix run github:nrdxp/sukr -- --help
```

Or install with Nix:

```bash
nix build github:nrdxp/sukr
./result/bin/sukr --help
nix profile install github:nrdxp/sukr
```

## Create Your First Site
Expand Down
33 changes: 33 additions & 0 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

99 changes: 66 additions & 33 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -10,51 +10,84 @@
};

outputs =
{
self,
nixpkgs,
fenix,
inputs@{
flake-parts,
...
}:
let
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
forAllSystems = fn: nixpkgs.lib.genAttrs systems (system: fn system);
in
{
devShells = forAllSystems (
system:
perSystem =
{
self',
pkgs,
inputs',
...
}:
let
pkgs = nixpkgs.legacyPackages.${system};
fenixPkgs = fenix.packages.${system};
toolchain = fenixPkgs.fromToolchainFile {
fenix = inputs'.fenix.packages;
# rustChannel = "stable";
toolchain = fenix.fromToolchainFile {
file = ./rust-toolchain.toml;
sha256 = "sha256-vra6TkHITpwRyA5oBKAHSX0Mi6CBDNQD+ryPSpxFsfg=";
sha256 = "sha256-qqF33vNuAdU5vua96VKVIwuc43j4EFeEXbjQ6+l4mO4=";
};
rustplatform = pkgs.makeRustPlatform {
cargo = toolchain;
rustc = toolchain;
};
in
{
default = pkgs.mkShell.override { stdenv = pkgs.clangStdenv; } {
RUST_SRC_PATH = "${toolchain}/lib/rustlib/src/rust/library";
packages = [
toolchain
pkgs.treefmt
pkgs.shfmt
pkgs.rust-analyzer
pkgs.taplo
pkgs.pkg-config
pkgs.nixfmt
pkgs.nodePackages.prettier
pkgs.miniserve # Dev server for testing
]
++ pkgs.lib.optionals pkgs.stdenv.isDarwin [
pkgs.apple-sdk
pkgs.libiconv
];
packages.sukr = rustplatform.buildRustPackage {
pname = "sukr";
version = "0.1.0";
src = ./.;
cargoLock = {
lockFile = ./Cargo.lock;
allowBuiltinFetchGit = true;
};
# Programs and libraries used at build-time
nativeBuildInputs =
with pkgs;
# Left empty on purpose to easily add if needed
[ ]
++ lib.optionals stdenv.isDarwin [
apple-sdk
libiconv
];
};
packages.default = self'.packages.sukr;

# Default shell opened with `nix develop`
devShells.default = pkgs.mkShell {
name = "dev";

# Available packages on https://search.nixos.org/packages
buildInputs =
with pkgs;
[
toolchain
treefmt
shfmt
rust-analyzer
taplo
pkg-config
nixfmt
nodePackages.prettier
miniserve # Dev server for testing
]
++ lib.optionals stdenv.isDarwin [
apple-sdk
libiconv
];

shellHook = ''
echo "Welcome to the rust devshell!"
'';
};
}
);
};
};
}