diff options
| author | Christine Dodrill <me@christine.website> | 2021-01-01 16:24:41 -0500 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2021-01-01 16:25:45 -0500 |
| commit | 9c5250d10a3ea877b6c939448c4b63649257079f (patch) | |
| tree | e7c314e632955ab7fd9eebe9b4eec8fcff0d2e1f | |
| parent | 474fd908bca7ce2ae5e584351790d2394fce6ff2 (diff) | |
| download | xesite-9c5250d10a3ea877b6c939448c4b63649257079f.tar.xz xesite-9c5250d10a3ea877b6c939448c4b63649257079f.zip | |
make this compatible with the new nix way of doing things
Signed-off-by: Christine Dodrill <me@christine.website>
| -rw-r--r-- | .github/workflows/nix.yml | 5 | ||||
| -rw-r--r-- | default.nix | 70 | ||||
| -rw-r--r-- | docker.nix | 23 | ||||
| -rw-r--r-- | site.nix | 51 |
4 files changed, 75 insertions, 74 deletions
diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index ab5e46a..aa9bb0d 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -15,13 +15,14 @@ jobs: - uses: cachix/cachix-action@v7 with: name: xe - - run: nix-build + - run: nix-build --no-out-link - name: Log into GitHub Container Registry if: github.ref == 'refs/heads/main' - run: echo "${{ secrets.CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin + run: echo "${{ secrets.CR_PAT }}" | docker login https://ghcr.io -u Xe --password-stdin - name: Docker push if: github.ref == 'refs/heads/main' run: | + nix-build ./docker.nix docker load -i result docker tag xena/christinewebsite:latest ghcr.io/xe/site:$GITHUB_SHA docker push ghcr.io/xe/site diff --git a/default.nix b/default.nix index 866cfe5..06876b7 100644 --- a/default.nix +++ b/default.nix @@ -1,23 +1,51 @@ -{ system ? builtins.currentSystem }: +{ sources ? import ./nix/sources.nix, pkgs ? import sources.nixpkgs { } }: +with pkgs; let - sources = import ./nix/sources.nix; - pkgs = import sources.nixpkgs { inherit system; }; - callPackage = pkgs.lib.callPackageWith pkgs; - site = callPackage ./site.nix { }; - - dockerImage = pkg: - pkgs.dockerTools.buildLayeredImage { - name = "xena/christinewebsite"; - tag = "latest"; - - contents = [ pkgs.cacert pkg ]; - - config = { - Cmd = [ "${pkg}/bin/xesite" ]; - Env = [ "CONFIG_FNAME=${pkg}/config.dhall" "RUST_LOG=info" ]; - WorkingDir = "/"; - }; - }; - -in dockerImage site + srcNoTarget = dir: + builtins.filterSource + (path: type: type != "directory" || builtins.baseNameOf path != "target") + dir; + + naersk = pkgs.callPackage sources.naersk { }; + dhallpkgs = import sources.easy-dhall-nix { inherit pkgs; }; + src = srcNoTarget ./.; + + xesite = naersk.buildPackage { + inherit src; + buildInputs = [ pkg-config openssl git ]; + remapPathPrefix = true; + }; + + config = stdenv.mkDerivation { + pname = "xesite-config"; + version = "HEAD"; + buildInputs = [ dhallpkgs.dhall-simple ]; + + phases = "installPhase"; + + installPhase = '' + cd ${src} + dhall resolve < ${src}/config.dhall >> $out + ''; + }; + +in pkgs.stdenv.mkDerivation { + inherit (xesite) name; + inherit src; + phases = "installPhase"; + + installPhase = '' + mkdir -p $out $out/bin + + cp -rf ${config} $out/config.dhall + cp -rf $src/blog $out/blog + cp -rf $src/css $out/css + cp -rf $src/gallery $out/gallery + cp -rf $src/signalboost.dhall $out/signalboost.dhall + cp -rf $src/static $out/static + cp -rf $src/talks $out/talks + + cp -rf ${xesite}/bin/xesite $out/bin/xesite + ''; +} diff --git a/docker.nix b/docker.nix new file mode 100644 index 0000000..866cfe5 --- /dev/null +++ b/docker.nix @@ -0,0 +1,23 @@ +{ system ? builtins.currentSystem }: + +let + sources = import ./nix/sources.nix; + pkgs = import sources.nixpkgs { inherit system; }; + callPackage = pkgs.lib.callPackageWith pkgs; + site = callPackage ./site.nix { }; + + dockerImage = pkg: + pkgs.dockerTools.buildLayeredImage { + name = "xena/christinewebsite"; + tag = "latest"; + + contents = [ pkgs.cacert pkg ]; + + config = { + Cmd = [ "${pkg}/bin/xesite" ]; + Env = [ "CONFIG_FNAME=${pkg}/config.dhall" "RUST_LOG=info" ]; + WorkingDir = "/"; + }; + }; + +in dockerImage site diff --git a/site.nix b/site.nix deleted file mode 100644 index 06876b7..0000000 --- a/site.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ sources ? import ./nix/sources.nix, pkgs ? import sources.nixpkgs { } }: -with pkgs; - -let - srcNoTarget = dir: - builtins.filterSource - (path: type: type != "directory" || builtins.baseNameOf path != "target") - dir; - - naersk = pkgs.callPackage sources.naersk { }; - dhallpkgs = import sources.easy-dhall-nix { inherit pkgs; }; - src = srcNoTarget ./.; - - xesite = naersk.buildPackage { - inherit src; - buildInputs = [ pkg-config openssl git ]; - remapPathPrefix = true; - }; - - config = stdenv.mkDerivation { - pname = "xesite-config"; - version = "HEAD"; - buildInputs = [ dhallpkgs.dhall-simple ]; - - phases = "installPhase"; - - installPhase = '' - cd ${src} - dhall resolve < ${src}/config.dhall >> $out - ''; - }; - -in pkgs.stdenv.mkDerivation { - inherit (xesite) name; - inherit src; - phases = "installPhase"; - - installPhase = '' - mkdir -p $out $out/bin - - cp -rf ${config} $out/config.dhall - cp -rf $src/blog $out/blog - cp -rf $src/css $out/css - cp -rf $src/gallery $out/gallery - cp -rf $src/signalboost.dhall $out/signalboost.dhall - cp -rf $src/static $out/static - cp -rf $src/talks $out/talks - - cp -rf ${xesite}/bin/xesite $out/bin/xesite - ''; -} |
