mirror of
https://codeberg.org/icewind/palantir.git
synced 2026-06-03 18:24:08 +02:00
all nix build
This commit is contained in:
parent
23e6e2fff5
commit
3c48a8461c
4 changed files with 94 additions and 84 deletions
32
.github/workflows/nix.yaml
vendored
Normal file
32
.github/workflows/nix.yaml
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
name: "Build"
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
target:
|
||||||
|
- x86_64-unknown-linux-gnu
|
||||||
|
- x86_64-pc-windows-gnu
|
||||||
|
- x86_64-unknown-linux-musl
|
||||||
|
- i686-unknown-linux-musl
|
||||||
|
- armv7-unknown-linux-musleabihf
|
||||||
|
- aarch64-unknown-linux-musl
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: cachix/install-nix-action@v20
|
||||||
|
with:
|
||||||
|
nix_path: nixpkgs=channel:nixos-unstable
|
||||||
|
- uses: cachix/cachix-action@v12
|
||||||
|
with:
|
||||||
|
name: palantir
|
||||||
|
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||||
|
- run: nix build .#${{ matrix.target }}
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: palantir-${{ matrix.target }}
|
||||||
|
path: result/bin/*
|
||||||
30
.github/workflows/release.yml
vendored
30
.github/workflows/release.yml
vendored
|
|
@ -6,36 +6,30 @@ on:
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release-binaries:
|
build:
|
||||||
name: Build release binaries
|
runs-on: ubuntu-latest
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
target:
|
target:
|
||||||
|
- x86_64-pc-windows-gnu
|
||||||
- x86_64-unknown-linux-musl
|
- x86_64-unknown-linux-musl
|
||||||
- i686-unknown-linux-musl
|
- i686-unknown-linux-musl
|
||||||
- armv7-unknown-linux-musleabihf
|
- armv7-unknown-linux-musleabihf
|
||||||
- aarch64-unknown-linux-musl
|
- aarch64-unknown-linux-musl
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: actions-rs/toolchain@v1
|
- uses: cachix/install-nix-action@v20
|
||||||
with:
|
with:
|
||||||
profile: minimal
|
nix_path: nixpkgs=channel:nixos-unstable
|
||||||
toolchain: stable
|
- uses: cachix/cachix-action@v12
|
||||||
override: true
|
|
||||||
target: ${{ matrix.target }}
|
|
||||||
- uses: Swatinem/rust-cache@v1
|
|
||||||
- name: Build release binary
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
with:
|
||||||
use-cross: true
|
name: palantir
|
||||||
command: build
|
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||||
args: --release --target ${{ matrix.target }}
|
- run: nix build .#${{ matrix.target }}
|
||||||
- name: Upload amd64 binary to release
|
- name: Upload binary to release
|
||||||
uses: svenstaro/upload-release-action@v2
|
uses: svenstaro/upload-release-action@v2
|
||||||
with:
|
with:
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
file: target/${{ matrix.target }}/release/palantir
|
file: release/bin/*
|
||||||
asset_name: palantir-${{ matrix.target }}
|
asset_name: palantir-${{ matrix.target }}
|
||||||
tag: ${{ github.ref }}
|
tag: ${{ github.ref }}
|
||||||
|
|
|
||||||
49
.github/workflows/rust.yml
vendored
49
.github/workflows/rust.yml
vendored
|
|
@ -1,49 +0,0 @@
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
name: CI
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
name: Check
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
profile: minimal
|
|
||||||
toolchain: stable
|
|
||||||
override: true
|
|
||||||
- uses: Swatinem/rust-cache@v1
|
|
||||||
- uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: check
|
|
||||||
|
|
||||||
build:
|
|
||||||
name: Build
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
target:
|
|
||||||
- x86_64-unknown-linux-musl
|
|
||||||
- i686-unknown-linux-musl
|
|
||||||
- armv7-unknown-linux-musleabihf
|
|
||||||
- aarch64-unknown-linux-musl
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
profile: minimal
|
|
||||||
toolchain: stable
|
|
||||||
override: true
|
|
||||||
target: ${{ matrix.target }}
|
|
||||||
- uses: Swatinem/rust-cache@v1
|
|
||||||
- uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
use-cross: true
|
|
||||||
command: build
|
|
||||||
args: --release --target ${{ matrix.target }}
|
|
||||||
- uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: palantir-${{ matrix.target }}
|
|
||||||
path: target/${{ matrix.target }}/release/palantir
|
|
||||||
67
flake.nix
67
flake.nix
|
|
@ -27,9 +27,34 @@
|
||||||
inherit system overlays;
|
inherit system overlays;
|
||||||
};
|
};
|
||||||
|
|
||||||
toolchain = (pkgs.rust-bin.stable.latest.default.override {
|
targets = [
|
||||||
targets = [ "x86_64-pc-windows-gnu" ];
|
"x86_64-unknown-linux-gnu"
|
||||||
});
|
"x86_64-pc-windows-gnu"
|
||||||
|
"x86_64-unknown-linux-musl"
|
||||||
|
"i686-unknown-linux-musl"
|
||||||
|
"armv7-unknown-linux-musleabihf"
|
||||||
|
"aarch64-unknown-linux-musl"
|
||||||
|
];
|
||||||
|
|
||||||
|
toolchain = (pkgs.rust-bin.stable.latest.default.override { inherit targets; });
|
||||||
|
|
||||||
|
crossArgs = {
|
||||||
|
"armv7-unknown-linux-musleabihf" = {
|
||||||
|
nativeBuildInputs = [ pkgs.pkgsCross.armv7l-hf-multiplatform.stdenv.cc ];
|
||||||
|
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_RUSTFLAGS = "-C target-feature=+crt-static";
|
||||||
|
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABIHF_LINKER = "${pkgs.pkgsCross.armv7l-hf-multiplatform.stdenv.cc.targetPrefix}cc";
|
||||||
|
};
|
||||||
|
"aarch64-unknown-linux-musl" = {
|
||||||
|
nativeBuildInputs = [ pkgs.pkgsCross.aarch64-multiplatform-musl.stdenv.cc ];
|
||||||
|
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS = "-C target-feature=+crt-static";
|
||||||
|
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER = "${pkgs.pkgsCross.aarch64-multiplatform-musl.stdenv.cc.targetPrefix}cc";
|
||||||
|
};
|
||||||
|
"i686-unknown-linux-musl" = {
|
||||||
|
nativeBuildInputs = [ pkgs.pkgsCross.musl32.stdenv.cc ];
|
||||||
|
CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_RUSTFLAGS = "-C target-feature=+crt-static";
|
||||||
|
CARGO_TARGET_I686_UNKNOWN_LINUX_MUSL_LINKER = "${pkgs.pkgsCross.musl32.stdenv.cc.targetPrefix}cc";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
mingw_w64_cc = pkgs.pkgsCross.mingwW64.stdenv.cc;
|
mingw_w64_cc = pkgs.pkgsCross.mingwW64.stdenv.cc;
|
||||||
windows = pkgs.pkgsCross.mingwW64.windows;
|
windows = pkgs.pkgsCross.mingwW64.windows;
|
||||||
|
|
@ -38,19 +63,8 @@
|
||||||
cargo = toolchain;
|
cargo = toolchain;
|
||||||
rustc = toolchain;
|
rustc = toolchain;
|
||||||
};
|
};
|
||||||
in rec {
|
|
||||||
# `nix build`
|
|
||||||
packages.palantir = naersk'.buildPackage {
|
|
||||||
pname = "palantir";
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
postInstall = ''
|
buildWindows = target: naersk'.buildPackage {
|
||||||
mkdir -p $out/lib/udev/rules.d/
|
|
||||||
echo 'SUBSYSTEM=="powercap", ACTION=="add", RUN+="${pkgs.coreutils-full}/bin/chgrp -R powermonitoring /sys%p", RUN+="${pkgs.coreutils-full}/bin/chmod -R g=u /sys%p"' >> $out/lib/udev/rules.d/51-palantir.rules
|
|
||||||
echo 'SUBSYSTEM=="powercap", ACTION=="change", ENV{TRIGGER}!="none", RUN+="${pkgs.coreutils-full}/bin/chgrp -R powermonitoring /sys%p", RUN+="${pkgs.coreutils-full}/bin/chmod -R g=u /sys%p"' >> $out/lib/udev/rules.d/51-palantir.rules
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
packages.palantir-win = naersk'.buildPackage {
|
|
||||||
pname = "palantir";
|
pname = "palantir";
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
|
|
@ -59,11 +73,30 @@
|
||||||
mingw_w64_cc
|
mingw_w64_cc
|
||||||
];
|
];
|
||||||
nativeBuildInputs = [ mingw_w64_cc ];
|
nativeBuildInputs = [ mingw_w64_cc ];
|
||||||
|
# only add pthreads when building the final package, not when building the dependencies
|
||||||
|
# otherwise it interferes with building build scripts
|
||||||
overrideMain = args: args // { buildInputs = [ windows.pthreads ]; };
|
overrideMain = args: args // { buildInputs = [ windows.pthreads ]; };
|
||||||
|
|
||||||
CARGO_BUILD_TARGET = "x86_64-pc-windows-gnu";
|
CARGO_BUILD_TARGET = target;
|
||||||
};
|
};
|
||||||
defaultPackage = packages.palantir;
|
|
||||||
|
buildLinux = target: naersk'.buildPackage ({
|
||||||
|
pname = "palantir";
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $out/lib/udev/rules.d/
|
||||||
|
echo 'SUBSYSTEM=="powercap", ACTION=="add", RUN+="${pkgs.coreutils-full}/bin/chgrp -R powermonitoring /sys%p", RUN+="${pkgs.coreutils-full}/bin/chmod -R g=u /sys%p"' >> $out/lib/udev/rules.d/51-palantir.rules
|
||||||
|
echo 'SUBSYSTEM=="powercap", ACTION=="change", ENV{TRIGGER}!="none", RUN+="${pkgs.coreutils-full}/bin/chgrp -R powermonitoring /sys%p", RUN+="${pkgs.coreutils-full}/bin/chmod -R g=u /sys%p"' >> $out/lib/udev/rules.d/51-palantir.rules
|
||||||
|
'';
|
||||||
|
|
||||||
|
CARGO_BUILD_TARGET = target;
|
||||||
|
} // (if (pkgs.config != target) then (crossArgs.${target} or {}) else {}));
|
||||||
|
buildAny = target: if (nixpkgs.lib.strings.hasInfix "windows" target) then (buildWindows target) else (buildLinux target);
|
||||||
|
in rec {
|
||||||
|
# `nix build`
|
||||||
|
packages = nixpkgs.lib.attrsets.genAttrs targets buildAny;
|
||||||
|
defaultPackage = packages.${pkgs.config};
|
||||||
|
|
||||||
# `nix run`
|
# `nix run`
|
||||||
apps.palantir = utils.lib.mkApp {
|
apps.palantir = utils.lib.mkApp {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue