From cc2245f991ca0474e3d4db9fa213be4aa8ccccb7 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Sat, 20 Apr 2024 18:29:18 +0200 Subject: Use gitlab CI commit 3bca937c9ff91852269a828de0c778db7d1423df Author: Alan Pearce Date: Sat Apr 20 01:14:26 2024 +0200 create gitlab CI configuration commit ee9eeab17ac88f4020d857dcceb458c66418e2f6 Author: Alan Pearce Date: Sat Apr 20 16:07:01 2024 +0200 make helpers for both building and streaming docker images commit d8340ec8ff3e3f9c51b55e95e27e518330435b7c Author: Alan Pearce Date: Sat Apr 20 00:20:34 2024 +0200 use long git hashes for docker tags --- gitlab-ci.yml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 gitlab-ci.yml (limited to 'gitlab-ci.yml') 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 -- cgit 1.4.1