mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 01:12:56 +03:00
0c6d6a67d2
If a function doesn't return a value, terminate with a semicolon. I also moved `implicit_hasher` and `return_self_not_must_use` to the "definitely keep disabling this" list, and installed [Bacon](https://dystroy.org/bacon/) in the Nix shell to make it easier to run Clippy. V3_GIT_ORIGIN_REV_ID: ffb17b42d982518aec433a1676dba0a0dd0ad95d
237 lines
8.2 KiB
Nix
237 lines
8.2 KiB
Nix
{
|
|
description = "DDN Engine";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
crane = {
|
|
url = "github:ipetkov/crane";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
rust-overlay = {
|
|
url = "github:oxalica/rust-overlay";
|
|
inputs = {
|
|
nixpkgs.follows = "nixpkgs";
|
|
flake-utils.follows = "flake-utils";
|
|
};
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, flake-utils, crane, rust-overlay }:
|
|
flake-utils.lib.eachDefaultSystem
|
|
(localSystem:
|
|
let
|
|
version = pkgs.lib.strings.fileContents ./nix/version;
|
|
|
|
pkgs = import nixpkgs {
|
|
system = localSystem;
|
|
overlays = [ rust-overlay.overlays.default ];
|
|
};
|
|
|
|
rust = import ./nix/rust.nix {
|
|
inherit nixpkgs rust-overlay crane localSystem;
|
|
};
|
|
|
|
rust-x86_64-linux = (import ./nix/rust.nix {
|
|
inherit nixpkgs rust-overlay crane localSystem;
|
|
crossSystem = "x86_64-linux";
|
|
});
|
|
|
|
rust-aarch64-linux = (import ./nix/rust.nix {
|
|
inherit nixpkgs rust-overlay crane localSystem;
|
|
crossSystem = "aarch64-linux";
|
|
});
|
|
in
|
|
{
|
|
formatter = pkgs.nixpkgs-fmt;
|
|
|
|
packages = {
|
|
###### ENGINE
|
|
|
|
# engine binary for whichever is the local machine
|
|
engine = rust.callPackage ./nix/app.nix {
|
|
inherit version;
|
|
pname = "engine";
|
|
};
|
|
|
|
# engine binary for x86_64-linux
|
|
engine-x86_64-linux = rust-x86_64-linux.callPackage ./nix/app.nix {
|
|
inherit version;
|
|
pname = "engine";
|
|
};
|
|
|
|
# engine binary for aarch64-linux
|
|
engine-aarch64-linux = rust-aarch64-linux.callPackage ./nix/app.nix {
|
|
inherit version;
|
|
pname = "engine";
|
|
};
|
|
|
|
# engine docker files for whichever is the local machine
|
|
engine-docker = pkgs.callPackage ./nix/docker.nix {
|
|
package = self.packages.${localSystem}.engine;
|
|
image-name = "ghcr.io/hasura/v3-engine";
|
|
tag = "dev";
|
|
port = "3000";
|
|
};
|
|
|
|
# engine docker for x86_64-linux
|
|
engine-docker-x86_64-linux = pkgs.callPackage ./nix/docker.nix {
|
|
package = self.packages.${localSystem}.engine-x86_64-linux;
|
|
architecture = "amd64";
|
|
image-name = "ghcr.io/hasura/v3-engine";
|
|
port = "3000";
|
|
};
|
|
|
|
# engine docker for aarch64-linux
|
|
engine-docker-aarch64-linux = pkgs.callPackage ./nix/docker.nix {
|
|
package = self.packages.${localSystem}.engine-aarch64-linux;
|
|
architecture = "arm64";
|
|
image-name = "ghcr.io/hasura/v3-engine";
|
|
port = "3000";
|
|
};
|
|
|
|
default = self.packages.${localSystem}.engine;
|
|
|
|
###### CUSTOM_CONNECTOR
|
|
|
|
# custom-connector binary for whichever is the local machine
|
|
custom-connector = rust.callPackage ./nix/app.nix {
|
|
inherit version;
|
|
pname = "custom-connector";
|
|
};
|
|
|
|
# custom-connector binary for x86_64-linux
|
|
custom-connector-x86_64-linux = rust-x86_64-linux.callPackage ./nix/app.nix {
|
|
inherit version;
|
|
pname = "custom-connector";
|
|
};
|
|
|
|
# custom-connector binary for aarch64-linux
|
|
custom-connector-aarch64-linux = rust-aarch64-linux.callPackage ./nix/app.nix {
|
|
inherit version;
|
|
pname = "custom-connector";
|
|
};
|
|
|
|
# custom-connector docker files for whichever is the local machine
|
|
custom-connector-docker = pkgs.callPackage ./nix/docker.nix {
|
|
package = self.packages.${localSystem}.custom-connector;
|
|
image-name = "ghcr.io/hasura/v3-custom-connector";
|
|
tag = "dev";
|
|
port = "8181";
|
|
};
|
|
|
|
# custom-connector docker for x86_64-linux
|
|
custom-connector-docker-x86_64-linux = pkgs.callPackage ./nix/docker.nix {
|
|
package = self.packages.${localSystem}.custom-connector-x86_64-linux;
|
|
architecture = "amd64";
|
|
image-name = "ghcr.io/hasura/v3-custom-connector";
|
|
port = "8181";
|
|
};
|
|
|
|
# custom-connector docker for aarch64-linux
|
|
custom-connector-docker-aarch64-linux = pkgs.callPackage ./nix/docker.nix {
|
|
package = self.packages.${localSystem}.custom-connector-aarch64-linux;
|
|
architecture = "arm64";
|
|
image-name = "ghcr.io/hasura/v3-custom-connector";
|
|
port = "8181";
|
|
};
|
|
|
|
###### DEV-AUTH-WEBHOOK
|
|
|
|
# dev-auth-webhook binary for whichever is the local machine
|
|
dev-auth-webhook = rust.callPackage ./nix/app.nix {
|
|
inherit version;
|
|
pname = "dev-auth-webhook";
|
|
};
|
|
|
|
# dev-auth-webhook binary for x86_64-linux
|
|
dev-auth-webhook-x86_64-linux = rust-x86_64-linux.callPackage ./nix/app.nix {
|
|
inherit version;
|
|
pname = "dev-auth-webhook";
|
|
};
|
|
|
|
# dev-auth-webhook binary for aarch64-linux
|
|
dev-auth-webhook-aarch64-linux = rust-aarch64-linux.callPackage ./nix/app.nix {
|
|
inherit version;
|
|
pname = "dev-auth-webhook";
|
|
};
|
|
|
|
# dev-auth-webhook docker files for whichever is the local machine
|
|
dev-auth-webhook-docker = pkgs.callPackage ./nix/docker.nix {
|
|
package = self.packages.${localSystem}.dev-auth-webhook;
|
|
image-name = "ghcr.io/hasura/v3-dev-auth-webhook";
|
|
tag = "dev";
|
|
port = "3050";
|
|
};
|
|
|
|
# dev-auth-webhook docker for x86_64-linux
|
|
dev-auth-webhook-docker-x86_64-linux = pkgs.callPackage ./nix/docker.nix {
|
|
package = self.packages.${localSystem}.dev-auth-webhook-x86_64-linux;
|
|
architecture = "amd64";
|
|
image-name = "ghcr.io/hasura/v3-dev-auth-webhook";
|
|
port = "3050";
|
|
};
|
|
|
|
# dev-auth-webhook docker for aarch64-linux
|
|
dev-auth-webhook-docker-aarch64-linux = pkgs.callPackage ./nix/docker.nix {
|
|
package = self.packages.${localSystem}.dev-auth-webhook-aarch64-linux;
|
|
architecture = "arm64";
|
|
image-name = "ghcr.io/hasura/v3-dev-auth-webhook";
|
|
port = "3050";
|
|
};
|
|
|
|
### SCRIPTS
|
|
|
|
publish-docker-image = pkgs.writeShellApplication {
|
|
name = "publish-docker-image";
|
|
runtimeInputs = with pkgs; [ coreutils skopeo ];
|
|
text = builtins.readFile ./.github/scripts/deploy.sh;
|
|
};
|
|
};
|
|
|
|
apps = {
|
|
default = self.apps.${localSystem}.engine;
|
|
engine = flake-utils.lib.mkApp {
|
|
drv = self.packages.${localSystem}.engine;
|
|
name = "engine";
|
|
};
|
|
dev-auth-webhook = flake-utils.lib.mkApp {
|
|
drv = self.packages.${localSystem}.dev-auth-webhook;
|
|
name = "dev-auth-webhook";
|
|
};
|
|
custom-connector = flake-utils.lib.mkApp {
|
|
drv = self.packages.${localSystem}.custom-connector;
|
|
name = "custom-connector";
|
|
};
|
|
};
|
|
|
|
devShells = {
|
|
default = pkgs.mkShell {
|
|
# include dependencies of the default package
|
|
inputsFrom = [ self.packages.${localSystem}.default ];
|
|
|
|
# build-time inputs
|
|
nativeBuildInputs = [
|
|
# Development
|
|
pkgs.just
|
|
pkgs.nixpkgs-fmt
|
|
pkgs.nodePackages.prettier
|
|
|
|
# Rust
|
|
pkgs.bacon
|
|
pkgs.cargo-edit
|
|
pkgs.cargo-expand
|
|
pkgs.cargo-flamegraph
|
|
pkgs.cargo-insta
|
|
pkgs.cargo-machete
|
|
pkgs.cargo-nextest
|
|
pkgs.cargo-watch
|
|
rust.rustToolchain
|
|
];
|
|
};
|
|
};
|
|
});
|
|
}
|