[Git][reproducible-builds/reproducible-website][add-flake] flake: add Nix flake files
Pol Dellaiera (@drupol)
gitlab at salsa.debian.org
Sat Oct 14 08:27:31 UTC 2023
Pol Dellaiera pushed to branch add-flake at Reproducible Builds / reproducible-website
Commits:
0c1a61eb by Pol Dellaiera at 2023-10-14T10:27:17+02:00
flake: add Nix flake files
- - - - -
2 changed files:
- + flake.lock
- + flake.nix
Changes:
=====================================
flake.lock
=====================================
@@ -0,0 +1,79 @@
+{
+ "nodes": {
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": "nixpkgs-lib"
+ },
+ "locked": {
+ "lastModified": 1696343447,
+ "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4",
+ "type": "github"
+ },
+ "original": {
+ "id": "flake-parts",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1697009197,
+ "narHash": "sha256-viVRhBTFT8fPJTb1N3brQIpFZnttmwo3JVKNuWRVc3s=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "01441e14af5e29c9d27ace398e6dd0b293e25a54",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-lib": {
+ "locked": {
+ "dir": "lib",
+ "lastModified": 1696019113,
+ "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a",
+ "type": "github"
+ },
+ "original": {
+ "dir": "lib",
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "flake-parts": "flake-parts",
+ "nixpkgs": "nixpkgs",
+ "systems": "systems"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
=====================================
flake.nix
=====================================
@@ -0,0 +1,113 @@
+{
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
+ systems.url = "github:nix-systems/default";
+ };
+
+ outputs = inputs @ { self, flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } {
+ systems = import inputs.systems;
+
+ perSystem = { config, self', inputs', pkgs, system, lib, ... }:
+ let
+ jekyll = pkgs.jekyll.override ({ withOptionalDependencies = true; });
+ ruby = (pkgs.ruby.withPackages (ps: [ jekyll ]));
+ python3 = pkgs.python3.withPackages (p: [ p.pyyaml ]);
+ in
+ {
+ packages = {
+ default = pkgs.stdenv.mkDerivation {
+ name = "reproducible-website";
+ src = ./.;
+
+ # This step should not be mandatory, the script contributors.py
+ # should not get the contributors from git.
+ # Without this preConfigure phase, the script will fail.
+ preConfigure = ''
+ git init
+ git config user.email "you at example.com"
+ git config user.name "Nix build"
+
+ git add .
+ git commit -am "nix build commit"
+ '';
+
+ postPatch = ''
+ substituteInPlace bin/i18n.sh \
+ --replace "#!/bin/bash" "#!${pkgs.runtimeShell}"
+ substituteInPlace bin/contributors.py \
+ --replace "#!/usr/bin/env python3" "#!${lib.getExe python3}"
+ cat bin/contributors.py
+ '';
+
+ buildInputs = [
+ pkgs.git
+ pkgs.perl536Packages.Po4a
+ pkgs.which
+ python3
+ ruby
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out
+ cp -ar _site/* $out/
+
+ runHook postInstall
+ '';
+ };
+ };
+
+ apps = {
+ default =
+ let
+ caddyFile = pkgs.writeText "Caddyfile" ''
+ :4000 {
+ root * ${self'.packages.default}
+ log
+ encode gzip
+ file_server
+ }
+ '';
+ in
+ {
+ type = "app";
+ program = (lib.getExe (pkgs.writeScriptBin "start-static-site" ''
+ #!${pkgs.runtimeShell}
+ ${lib.getExe pkgs.caddy} run --adapter caddyfile --config ${caddyFile}
+ ''));
+ };
+
+ devserver = {
+ type = "app";
+ program = (lib.getExe (pkgs.writeScriptBin "start-static-server" ''
+ #!${pkgs.runtimeShell}
+ ${lib.getExe jekyll} serve --host
+ ''));
+ };
+
+ serve = {
+ type = "app";
+ program = (lib.getExe (pkgs.writeScriptBin "start-live-reload-site" ''
+ #!${pkgs.runtimeShell}
+ ${lib.getExe jekyll} serve --watch --livereload --incremental --host
+ ''));
+ };
+ };
+
+ devShells = {
+ default = pkgs.stdenvNoCC.mkDerivation {
+ name = "devshell";
+ buildInputs = [
+ pkgs.gnumake
+ pkgs.perl536Packages.Po4a
+ pkgs.which
+ jekyll
+ python3
+ ruby
+ ];
+ };
+ };
+ };
+ };
+}
View it on GitLab: https://salsa.debian.org/reproducible-builds/reproducible-website/-/commit/0c1a61eb6f8dfa1585ce413de61c8bc9356eeaed
--
View it on GitLab: https://salsa.debian.org/reproducible-builds/reproducible-website/-/commit/0c1a61eb6f8dfa1585ce413de61c8bc9356eeaed
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.reproducible-builds.org/pipermail/rb-commits/attachments/20231014/c4f9aeb8/attachment.htm>
More information about the rb-commits
mailing list