Use pinned nixpkgs (#117)
* pin nixpkgs * use pinned nixpkgs * use pinned nixpkgs for docker build * use buildLayeredImage * test dhall * dhall channel * fix?? * fix??? * fix???? * easy-dhall-nix * fix????? * pin dhall-yaml to shell, update xepkgs to use inherit
This commit is contained in:
parent
1f009f0dca
commit
4429504fb3
|
@ -10,3 +10,10 @@ jobs:
|
|||
- uses: cachix/cachix-action@v3
|
||||
with:
|
||||
name: xe
|
||||
- run: |
|
||||
nix-build docker.nix
|
||||
docker load -i result
|
||||
docker tag xena/christinewebsite:latest xena/christinewebsite:$(echo $GITHUB_SHA | head -c7)
|
||||
- run: |
|
||||
nix-env -if ./nix/dhall-yaml.nix
|
||||
dhall-to-yaml-ng --omit-empty --file site.dhall
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
{ pkgs ? import <nixpkgs> {} }:
|
||||
{ }:
|
||||
|
||||
pkgs.callPackage ./site.nix {}
|
||||
let
|
||||
sources = import ./nix/sources.nix;
|
||||
pkgs = import sources.nixpkgs { };
|
||||
in pkgs.callPackage ./site.nix { inherit pkgs; }
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
{ system ? builtins.currentSystem }:
|
||||
|
||||
let
|
||||
pkgs = import <nixpkgs> { inherit system; };
|
||||
|
||||
pkgs = import (import ./nix/sources.nix).nixpkgs { inherit system; };
|
||||
callPackage = pkgs.lib.callPackageWith pkgs;
|
||||
|
||||
site = callPackage ./site.nix { };
|
||||
|
||||
dockerImage = pkg:
|
||||
pkgs.dockerTools.buildImage {
|
||||
pkgs.dockerTools.buildLayeredImage {
|
||||
name = "xena/christinewebsite";
|
||||
tag = pkg.version;
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
let
|
||||
sources = import ./sources.nix;
|
||||
pkgs = import sources.nixpkgs { };
|
||||
dhall = import sources.easy-dhall-nix { inherit pkgs; };
|
||||
in dhall.dhall-yaml-simple
|
|
@ -1,4 +1,40 @@
|
|||
{
|
||||
"easy-dhall-nix": {
|
||||
"branch": "master",
|
||||
"description": "Derivations for easily downloading Dhall binaries and putting them to use.",
|
||||
"homepage": "",
|
||||
"owner": "justinwoo",
|
||||
"repo": "easy-dhall-nix",
|
||||
"rev": "735ad924fd829c9bbee0a167e0b2bbbf91e2cad5",
|
||||
"sha256": "1r3sqs1cz0mcfwfvaq1d21vnppg5sqzqdl6w9krsw5ad5czkk190",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/justinwoo/easy-dhall-nix/archive/735ad924fd829c9bbee0a167e0b2bbbf91e2cad5.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"niv": {
|
||||
"branch": "master",
|
||||
"description": "Easy dependency management for Nix projects",
|
||||
"homepage": "https://github.com/nmattia/niv",
|
||||
"owner": "nmattia",
|
||||
"repo": "niv",
|
||||
"rev": "2ecfd86b631714b457e56d70dd83fa60435baeb6",
|
||||
"sha256": "01j6727cws8blg1npp54b4w6xa0gpgyzhyws2vqgp8clnlnmqqhi",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nmattia/niv/archive/2ecfd86b631714b457e56d70dd83fa60435baeb6.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"nixpkgs": {
|
||||
"branch": "nixpkgs-unstable",
|
||||
"description": "A read-only mirror of NixOS/nixpkgs tracking the released channels. Send issues and PRs to",
|
||||
"homepage": "https://github.com/NixOS/nixpkgs",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs-channels",
|
||||
"rev": "cc1ae9f21b9e0ce998e706a3de1bad0b5259f22d",
|
||||
"sha256": "0zjafww05h50ncapw51b5qxgbv9prjyag0j22jnfc3kcs5xr4ap0",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs-channels/archive/cc1ae9f21b9e0ce998e706a3de1bad0b5259f22d.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
},
|
||||
"vgo2nix": {
|
||||
"branch": "master",
|
||||
"description": null,
|
||||
|
@ -14,7 +50,7 @@
|
|||
"xepkgs": {
|
||||
"ref": "master",
|
||||
"repo": "https://tulpa.dev/Xe/nixpkgs",
|
||||
"rev": "71488e7dd46c9530d6781ab7845e6f720591a0b0",
|
||||
"rev": "e0027d79c85aab9411c69acaadaabd2189400cc9",
|
||||
"type": "git"
|
||||
}
|
||||
}
|
||||
|
|
13
shell.nix
13
shell.nix
|
@ -1,6 +1,11 @@
|
|||
let
|
||||
pkgs = import <nixpkgs> { };
|
||||
sources = import ./nix/sources.nix;
|
||||
xepkgs = import sources.xepkgs { };
|
||||
vgo2nix = import sources.vgo2nix { };
|
||||
in pkgs.mkShell { buildInputs = [ pkgs.go pkgs.niv xepkgs.gopls vgo2nix ]; }
|
||||
pkgs = import sources.nixpkgs { };
|
||||
niv = (import sources.niv { }).niv;
|
||||
dhall-yaml =
|
||||
(import sources.easy-dhall-nix { inherit pkgs; }).dhall-yaml-simple;
|
||||
xepkgs = import sources.xepkgs { inherit pkgs; };
|
||||
vgo2nix = import sources.vgo2nix { inherit pkgs; };
|
||||
in pkgs.mkShell {
|
||||
buildInputs = [ pkgs.go xepkgs.gopls dhall-yaml niv vgo2nix ];
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
let kms =
|
||||
https://xena.greedo.xeserv.us/pkg/dhall/kubermemes/k8s/package.dhall sha256:e47e95aba6a08f8ca3e38fbabc436566d6558a05a9b4ac149e8e712c8583b8f0
|
||||
|
||||
let kubernetes =
|
||||
https://xena.greedo.xeserv.us/pkg/dhall/dhall-kubernetes/1.15/package.dhall sha256:271494d6e3daba2a47d9d023188e35bf44c9c477a1cfbad1c589695a6b626e56
|
||||
|
||||
let tag = env:GITHUB_SHA as Text ? "latest"
|
||||
|
||||
let image = "xena/christinewebsite:${tag}"
|
||||
|
||||
let vars
|
||||
: List kubernetes.EnvVar.Type
|
||||
= [ kubernetes.EnvVar::{ name = "PORT", value = Some "5000" } ]
|
||||
|
||||
in kms.app.make
|
||||
kms.app.Config::{
|
||||
, name = "christinewebsite"
|
||||
, appPort = 5000
|
||||
, image = image
|
||||
, domain = "christine.website"
|
||||
, leIssuer = "prod"
|
||||
, envVars = vars
|
||||
}
|
5
site.nix
5
site.nix
|
@ -1,4 +1,4 @@
|
|||
{ pkgs ? import <nixpkgs> {} }:
|
||||
{ pkgs ? import (import ./nix/sources.nix).nixpkgs }:
|
||||
with pkgs;
|
||||
|
||||
assert lib.versionAtLeast go.version "1.13";
|
||||
|
@ -8,10 +8,9 @@ buildGoPackage rec {
|
|||
version = "latest";
|
||||
goPackagePath = "christine.website";
|
||||
src = ./.;
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
goDeps = ./deps.nix;
|
||||
allowGoReference = false;
|
||||
|
||||
preBuild = ''
|
||||
export CGO_ENABLED=0
|
||||
buildFlagsArray+=(-pkgdir "$TMPDIR")
|
||||
|
|
Loading…
Reference in New Issue