From e2f58fd25c5f8ee5b82921e45370dad6c8c8b1cc Mon Sep 17 00:00:00 2001 From: clerie Date: Sat, 9 Sep 2023 14:15:24 +0200 Subject: [PATCH] hosts/web-2: Publish mitel-ommclient2 documentation using update-from-hydra --- hosts/web-2/configuration.nix | 1 + hosts/web-2/mitel-ommclient2.nix | 20 ++++++++++++++++++++ modules/update-from-hydra/default.nix | 10 +++++++++- pkgs/update-from-hydra/update-from-hydra.sh | 11 +++++++++-- 4 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 hosts/web-2/mitel-ommclient2.nix diff --git a/hosts/web-2/configuration.nix b/hosts/web-2/configuration.nix index ac3ee98..e6f0e44 100644 --- a/hosts/web-2/configuration.nix +++ b/hosts/web-2/configuration.nix @@ -16,6 +16,7 @@ ./legal.nix ./meow.nix ./milchinsel.nix + ./mitel-ommclient2.nix ./ping.nix ./prediger.nix ./public.nix diff --git a/hosts/web-2/mitel-ommclient2.nix b/hosts/web-2/mitel-ommclient2.nix new file mode 100644 index 0000000..000d4da --- /dev/null +++ b/hosts/web-2/mitel-ommclient2.nix @@ -0,0 +1,20 @@ +{ ... }: { + services.update-from-hydra.paths.mitel-ommclient2 = { + enable = true; + hydraUrl = "https://hydra.clerie.de"; + hydraProject = "clerie"; + hydraJobset = "mitel_ommclient2"; + hydraJob = "packages.x86_64-linux.mitel-ommclient2"; + buildOutput = "doc"; + nixStoreUri = "https://nix-cache.clerie.de"; + resultPath = "/srv/mitel-ommclient2"; + }; + + services.nginx.virtualHosts = { + "mitel-ommclient2.clerie.de" = { + enableACME = true; + forceSSL = true; + root = "/srv/mitel-ommclient2/share/doc/mitel-ommclient2/html"; + }; + }; +} diff --git a/modules/update-from-hydra/default.nix b/modules/update-from-hydra/default.nix index 93d8a16..6bd38b0 100644 --- a/modules/update-from-hydra/default.nix +++ b/modules/update-from-hydra/default.nix @@ -45,6 +45,14 @@ let ''; }; + buildOutput = mkOption { + type = with types; nullOr str; + default = null; + description = '' + Build output name + ''; + }; + nixStoreUri = mkOption { type = types.str; description = '' @@ -85,7 +93,7 @@ in { wantedBy = [ "multi-user.target" ]; script = '' - ${pkgs.update-from-hydra}/bin/update-from-hydra --hydra-url "${path.hydraUrl}" --hydra-project "${path.hydraProject}" --hydra-jobset "${path.hydraJobset}" --hydra-job "${path.hydraJob}" --nix-store-uri "${path.nixStoreUri}" --gcroot-name "${name}" "${path.resultPath}" + ${pkgs.update-from-hydra}/bin/update-from-hydra --hydra-url "${path.hydraUrl}" --hydra-project "${path.hydraProject}" --hydra-jobset "${path.hydraJobset}" --hydra-job "${path.hydraJob}" ${optionalString (path.buildOutput != null) "--build-output ${path.buildOutput}"} --nix-store-uri "${path.nixStoreUri}" --gcroot-name "${name}" "${path.resultPath}" ''; }) ) cfg.paths); diff --git a/pkgs/update-from-hydra/update-from-hydra.sh b/pkgs/update-from-hydra/update-from-hydra.sh index 8d0a9af..edbcde9 100644 --- a/pkgs/update-from-hydra/update-from-hydra.sh +++ b/pkgs/update-from-hydra/update-from-hydra.sh @@ -2,6 +2,8 @@ set -euo pipefail +BUILD_OUTPUT="out" + while [[ $# -gt 0 ]]; do case $1 in --hydra-url) @@ -29,6 +31,11 @@ while [[ $# -gt 0 ]]; do shift shift ;; + --build-output) + BUILD_OUTPUT="$2" + shift + shift + ;; --gcroot-name) GCROOT_NAME="$2" shift @@ -50,13 +57,13 @@ set -- "${ARGS[@]}" HYDRA_JOB_URL="${HYDRA_URL}/job/${HYDRA_PROJECT}/${HYDRA_JOBSET}/${HYDRA_JOB}/latest-finished" RESULT_PATH="$1" -echo "Updating ${RESULT_PATH} from ${HYDRA_PROJECT}:${HYDRA_JOBSET}:${HYDRA_JOB}" +echo "Updating ${RESULT_PATH} from ${HYDRA_PROJECT}:${HYDRA_JOBSET}:${HYDRA_JOB} output ${BUILD_OUTPUT}" echo "Make sure symlink directory exist" mkdir -p "$(dirname "${RESULT_PATH}")" echo "Fetching job output" -STORE_PATH="$(curl -s -L -H "Accept: application/json" "${HYDRA_JOB_URL}" | jq -r .buildoutputs.out.path)" +STORE_PATH="$(curl -s -L -H "Accept: application/json" "${HYDRA_JOB_URL}" | jq -r ".buildoutputs.${BUILD_OUTPUT}.path")" echo "Copying path" nix copy --from "${NIX_STORE_URI}" "${STORE_PATH}"