all repos — website @ bbda985b3aec721a7d972d76780ca981140f6f3c

My website

test gitlab ci
Alan Pearce alan@alanpearce.eu
Sun, 21 Apr 2024 18:46:33 +0200
commit

bbda985b3aec721a7d972d76780ca981140f6f3c

parent

f334fc8d4caed2663ef3008f43d2f2fc48e3eaa9

1 files changed, 26 insertions(+), 18 deletions(-)

jump to
M gitlab-ci.ymlgitlab-ci.yml
@@ -1,39 +1,47 @@-default:
-  image: nixpkgs/nix-flakes
-  before_script:
-    - . <(nix print-dev-env .#ci)
-    - export GOPATH=~/go
+image: nixpkgs/nix-flakes
+
+stages:
+  - check
+  - build
+  - deploy
 
 check:
+  stage: check
   script:
     - nix flake check . --print-build-logs
 
 build:
+  stage: build
   needs:
     - check
-  variables:
-    CI_REGISTRY_IMAGE: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG
-    FLY_REGISTRY_IMAGE: registry.fly.io/alanpearce-eu
-  script:
-    - IMAGE_TAG="$(date --utc +%Y%m%d%H%M%S)-${CI_COMMIT_SHA}"
-    - nix build --max-jobs auto .\#server
+  before_script:
+    - . <(nix print-dev-env .#ci)
     - mkdir -p "/etc/containers/"
     - echo '{"default":[{"type":"insecureAcceptAnything"}]}' > /etc/containers/policy.json
-    - image-fly
-    # - skopeo login --username "$CI_REGISTRY_USER" --password "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
-    - skopeo --tmpdir=$TMPDIR inspect docker-archive://$(readlink -f result)
-    # - skopeo --tmpdir=$TMPDIR copy --dest-precompute-digests docker-archive://$(readlink -f result) docker://$CI_REGISTRY_IMAGE:${IMAGE_TAG}
-    - fly auth docker
-    - skopeo --tmpdir=$TMPDIR copy --dest-precompute-digests docker-archive://$(readlink -f result) docker://${FLY_REGISTRY_IMAGE}:${IMAGE_TAG}
-    - echo "FLY_REGISTRY_IMAGE_TAG=${FLY_REGISTRY_IMAGE}:${IMAGE_TAG}" >> build.env
+    - just docker-image-fly
+  script:
+    - export DOCKER_TAG="$(date --utc +%Y%m%d%H%M%S)-${CI_COMMIT_SHA}"
+    - just nix-build builder
+    - just docker-image-fly
+    - just docker-inspect result --tmpdir=$TMPDIR
+    - just print-docker-tag
+    - |
+      if fly auth whoami > /dev/null 2>&1
+      then
+        fly auth docker
+        just push-to-registry --tmpdir=$TMPDIR --dest-precompute-digests
+        just print-docker-tag >> build.env
+      fi
   artifacts:
     reports:
       dotenv: build.env
 
 deploy:
+  stage: deploy
   needs:
     - build
   script:
+    - fly auth docker
     - fly deploy --image $FLY_REGISTRY_IMAGE_TAG
   rules:
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH