diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 28d63d19..9eb02248 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -2,6 +2,10 @@ # # SPDX-License-Identifier: AGPL-3.0-or-later +# Doesn't need to be precise +env: + CURRENT_DATE: $(date --iso-8601=seconds) + steps: # Checks for the whole repo - label: check trailing whitespace @@ -29,7 +33,7 @@ steps: - nix-build -A checks.x86_64-linux.backend-test - label: backend image commands: - - nix-build -A packages.x86_64-linux.docker-backend + - nix-build -A packages.x86_64-linux.docker-backend --argstr creationDate "$CURRENT_DATE" - buildkite-agent artifact upload "$(readlink -f result)" - label: backend hlint commands: @@ -41,7 +45,7 @@ steps: - nix-build -A packages.x86_64-linux.frontend - label: frontend image commands: - - nix-build -A packages.x86_64-linux.docker-frontend + - nix-build -A packages.x86_64-linux.docker-frontend --argstr creationDate "$CURRENT_DATE" - buildkite-agent artifact upload "$(readlink -f result)" - label: frontend tscompile commands: @@ -66,9 +70,9 @@ steps: branches: "demo" - label: Push backend image to registry commands: - - nix-shell --run 'scripts/docker-push.sh docker-archive:$(nix-build -A packages.x86_64-linux.docker-backend) docker://ghcr.io/serokell/edna-backend:latest' + - nix-shell --run 'scripts/docker-push.sh docker-archive:$(nix-build -A packages.x86_64-linux.docker-backend --argstr creationDate "$CURRENT_DATE") docker://ghcr.io/serokell/edna-backend:latest' branches: "master" - label: Push frontend image to registry commands: - - nix-shell --run 'scripts/docker-push.sh docker-archive:$(nix-build -A packages.x86_64-linux.docker-frontend) docker://ghcr.io/serokell/edna-frontend:latest' + - nix-shell --run 'scripts/docker-push.sh docker-archive:$(nix-build -A packages.x86_64-linux.docker-frontend --argstr creationDate "$CURRENT_DATE") docker://ghcr.io/serokell/edna-frontend:latest' branches: "master" diff --git a/docker.nix b/docker.nix index 5652e607..44bf1f11 100644 --- a/docker.nix +++ b/docker.nix @@ -9,7 +9,8 @@ , glibcLocales , linkFarm , runCommand -, writeTextDir }: +, writeTextDir +, creationDate }: let inherit (dockerTools) buildLayeredImage buildImage pullImage; @@ -26,6 +27,7 @@ in in buildLayeredImage { name = "ghcr.io/serokell/edna-backend"; tag = "latest"; + created = creationDate; contents = [ backend @@ -78,6 +80,7 @@ in in buildImage { name = "ghcr.io/serokell/edna-frontend"; tag = "latest"; + created = creationDate; fromImage = nginx; contents = [ html diff --git a/flake.nix b/flake.nix index 8dfc0e8e..5f5d46b8 100644 --- a/flake.nix +++ b/flake.nix @@ -39,9 +39,9 @@ profile = with self.packages.${system}; linkFarm "edna-deploy-profile" [ { name = "backend.tar.gz"; - path = docker-backend; } + path = docker-backend { }; } { name = "frontend.tar.gz"; - path = docker-frontend; } + path = docker-frontend { }; } ]; in { hostname = "${hostName}.edna.serokell.team"; @@ -80,9 +80,10 @@ inherit analysis-env; EDNA_ANALYSIS_DIR = ./analysis; }; - docker = pkgs.callPackage ./docker.nix { + docker = creationDate: pkgs.callPackage ./docker.nix { backend = backend.server; inherit frontend; + creationDate = creationDate; }; frontend = pkgs.callPackage ./frontend { }; @@ -99,8 +100,8 @@ analysis-env = analysis-env; backend-lib = backend.library; backend-server = backend.server; - docker-backend = docker.backend-image; - docker-frontend = docker.frontend-image; + docker-backend = { creationDate ? "1970-01-01T00:00:01Z" }: (docker creationDate).backend-image; + docker-frontend = { creationDate ? "1970-01-01T00:00:01Z" }: (docker creationDate).frontend-image; frontend = frontend; };