From 903e98ba3b15a7e292997d5d23df0fa063eb2162 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Thu, 4 May 2023 14:59:44 +0200 Subject: [PATCH] move build logic to nix --- .albatros | 34 ++++++++++++++-------------------- flake.nix | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 20 deletions(-) diff --git a/.albatros b/.albatros index 14df0a9..b23bb1d 100755 --- a/.albatros +++ b/.albatros @@ -1,26 +1,20 @@ #!/usr/bin/env bash set -euxo pipefail -nix build --print-build-logs .#packages.x86_64-linux.ci -o df/linux/amd64/ci -nix build --print-build-logs .#packages.i686-linux.ci -o df/linux/386/ci -nix build --print-build-logs .#packages.aarch64-linux.ci -o df/linux/arm64/ci -nix build --print-build-logs .#packages.armv6l-linux.ci -o df/linux/arm/ci +nix run .#build-static +nix run .#build-container -nix build --print-build-logs .#packages.x86_64-linux.alba -o df/linux/amd64/alba -nix build --print-build-logs .#packages.i686-linux.alba -o df/linux/386/alba -nix build --print-build-logs .#packages.aarch64-linux.alba -o df/linux/arm64/alba -nix build --print-build-logs .#packages.armv6l-linux.alba -o df/linux/arm/alba +if [[ $BRANCH == "main" && -f $SECRET_PATH ]]; then +# Load secrets +source $SECRET_PATH -nix build --print-build-logs .#packages.x86_64-linux.container -o docker/linux.amd64.tar.gz -nix build --print-build-logs .#packages.armv6l-linux.container -o docker/linux.arm.tar.gz -nix build --print-build-logs .#packages.aarch64-linux.container -o docker/linux.arm64.tar.gz -nix build --print-build-logs .#packages.i686-linux.container -o docker/linux.386.tar.gz +# Configure Docker Auth +cat > .docker.json <&2 -#fi -# -# ./alba static push -t albatros:0.9 df/ 's3://download.deuxfleurs.org?endpoint=garage.deuxfleurs.fr&s3ForcePathStyle=true®ion=garage' +nix run .#publish-static +nix run .#publish-garage +nix run .#publish-docker-hub +fi diff --git a/flake.nix b/flake.nix index efb5bf9..878067d 100644 --- a/flake.nix +++ b/flake.nix @@ -110,6 +110,40 @@ packages = { inherit ci alba container; default = ci; + + # ci/cd stuff, to be run with `nix run .#build-static` and so on + build-static = pkgs.writeScriptBin "albatros-build-static" '' + nix build --print-build-logs .#packages.x86_64-linux.ci -o static/linux/amd64/ci + nix build --print-build-logs .#packages.i686-linux.ci -o static/linux/386/ci + nix build --print-build-logs .#packages.aarch64-linux.ci -o static/linux/arm64/ci + nix build --print-build-logs .#packages.armv6l-linux.ci -o static/linux/arm/ci + + nix build --print-build-logs .#packages.x86_64-linux.alba -o static/linux/amd64/alba + nix build --print-build-logs .#packages.i686-linux.alba -o static/linux/386/alba + nix build --print-build-logs .#packages.aarch64-linux.alba -o static/linux/arm64/alba + nix build --print-build-logs .#packages.armv6l-linux.alba -o static/linux/arm/alba + ''; + publish-static = pkgs.writeScriptBin "albatros-push-static" '' + RTAG=''${TAG:-$COMMIT} + echo "selected release tag is $RTAG" + ${alba} static push -t albatros:$RTAG static/ 's3://download.deuxfleurs.org?endpoint=garage.deuxfleurs.fr&s3ForcePathStyle=true®ion=garage' + ''; + build-container = pkgs.writeScriptBin "albatros-build-container" '' + nix build --print-build-logs .#packages.x86_64-linux.container -o docker/linux.amd64.tar.gz + nix build --print-build-logs .#packages.armv6l-linux.container -o docker/linux.arm.tar.gz + nix build --print-build-logs .#packages.aarch64-linux.container -o docker/linux.arm64.tar.gz + nix build --print-build-logs .#packages.i686-linux.container -o docker/linux.386.tar.gz + ''; + publish-garage = pkgs.writeScriptBin "albatros-publish-garage" '' + RTAG=''${TAG:-$COMMIT} + echo "selected release tag is $RTAG" + ${alba} container push -t albatros:$RTAG docker/ 's3://registry.deuxfleurs.org?endpoint=garage.deuxfleurs.fr&s3ForcePathStyle=true®ion=garage' + ''; + publish-docker-hub = pkgs.writeScriptBin "albatros-publish-dockerhub" '' + RTAG=''${TAG:-$COMMIT} + echo "selected release tag is $RTAG" + ${alba} container push -t albatros:$RTAG docker/ "docker://docker.io/superboum/albatros:$RTAG" + ''; }; }); }