about summary refs log tree commit diff stats
path: root/gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab-ci.yml')
-rw-r--r--gitlab-ci.yml39
1 files changed, 39 insertions, 0 deletions
diff --git a/gitlab-ci.yml b/gitlab-ci.yml
new file mode 100644
index 0000000..889c3db
--- /dev/null
+++ b/gitlab-ci.yml
@@ -0,0 +1,39 @@
+default:
+  image: nixpkgs/nix-flakes
+  before_script:
+    - . <(nix print-dev-env .#ci)
+    - export GOPATH=~/go
+
+check:
+  script:
+    - nix flake check . --print-build-logs
+
+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
+    - 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
+  artifacts:
+    reports:
+      dotenv: build.env
+
+deploy:
+  needs:
+    - build
+  script:
+    - fly deploy --image $FLY_REGISTRY_IMAGE_TAG
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH