From 5d35469a86ac3f66957fc90169e574dcb0a50efc Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Sun, 31 May 2020 15:33:39 -0400 Subject: [PATCH] nix/docker builds --- .gitignore | 1 + default.nix | 16 ++++++++++++++++ docker.nix | 21 +++++++++++++++++++++ nix/sources.json | 12 ++++++++++++ shell.nix | 1 + 5 files changed, 51 insertions(+) create mode 100644 default.nix create mode 100644 docker.nix diff --git a/.gitignore b/.gitignore index fedaa2b..86cddeb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target .env +/result diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..0ffe22a --- /dev/null +++ b/default.nix @@ -0,0 +1,16 @@ +{ pkgs ? import { }, sources ? import ./nix/sources.nix +, naersk ? import sources.naersk { } }: +with pkgs; + +let + srcNoTarget = dir: + builtins.filterSource + (path: type: type != "directory" || builtins.baseNameOf path != "target") + dir; + naersk = pkgs.callPackage sources.naersk { }; + src = srcNoTarget ./.; + remapPathPrefix = true; +in naersk.buildPackage { + inherit src remapPathPrefix; + buildInputs = with pkgs; [ pkg-config openssl libgit2 ]; +} diff --git a/docker.nix b/docker.nix new file mode 100644 index 0000000..de11339 --- /dev/null +++ b/docker.nix @@ -0,0 +1,21 @@ +{ system ? builtins.currentSystem }: + +let + pkgs = import { }; + callPackage = pkgs.lib.callPackageWith pkgs; + gitea-release = callPackage ./default.nix { }; + + dockerImage = pkg: + pkgs.dockerTools.buildLayeredImage { + name = "xena/gitea-release"; + tag = "${gitea-release.version}"; + + contents = [ pkg ]; + + config = { + Cmd = [ "/bin/gitea-release" "drone" ]; + WorkingDir = "/"; + }; + }; + +in dockerImage gitea-release diff --git a/nix/sources.json b/nix/sources.json index b24c338..d820377 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -1,4 +1,16 @@ { + "naersk": { + "branch": "master", + "description": "Build rust crates in Nix. No configuration, no code generation, no IFD. Sandbox friendly.", + "homepage": "", + "owner": "nmattia", + "repo": "naersk", + "rev": "a82fd7dc31a58c462b6dfa9d9d886fa2cc75dfd4", + "sha256": "00bjwir52y6jbf0b22qy9qxramw35k5fc7kp9hymr1zgpmw9kbwg", + "type": "tarball", + "url": "https://github.com/nmattia/naersk/archive/a82fd7dc31a58c462b6dfa9d9d886fa2cc75dfd4.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, "nixpkgs-mozilla": { "branch": "master", "description": "mozilla related nixpkgs (extends nixos/nixpkgs repo)", diff --git a/shell.nix b/shell.nix index bda9d32..6953b40 100644 --- a/shell.nix +++ b/shell.nix @@ -6,5 +6,6 @@ in pkgs.mkShell { latest.rustChannels.stable.rust openssl pkg-config + libgit2 ]; }