mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 01:12:56 +03:00
7efcb2e4f6
This PR fixes the custom connector whose schema endpoint doesn't actually return correct output (it was missing some functions/procedures, etc). Then it updates all tests that actually talk to the custom connector with the latest version of its schema/capabilities in their DataConnectorLink. This test update is done by a new script added to the justfile that finds and patches all metadata json files and inserts the new schema and capabilities after reading them from the custom connector running in docker. V3_GIT_ORIGIN_REV_ID: f1825a6f74ddcb6c01198fe4a41de6b4fc0bf533
237 lines
8.1 KiB
Nix
237 lines
8.1 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";
|
|
};
|
|
};
|
|
};
|
|
|
|
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.moreutils
|
|
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
|
|
];
|
|
};
|
|
};
|
|
});
|
|
}
|