|
1 | 1 | MAKEFLAGS += --always-make |
2 | 2 | DOCKER_USERNAME = coruscation |
| 3 | +VERSION_FILE = .cerulean-version |
3 | 4 |
|
4 | 5 | git-add-all: |
5 | 6 | git add ./ |
@@ -31,9 +32,14 @@ define with-secrets |
31 | 32 | env env $$(gpg --batch --decrypt --passphrase $$CERULEAN_PASSPHRASE ./secrets.gpg | xargs) $(MAKE) $1 |
32 | 33 | endef |
33 | 34 |
|
34 | | -docker-publish-impl: docker-build-and-load |
35 | | - docker login -u ${DOCKER_USERNAME} -p $${DOCKER_TOKEN} |
36 | | - docker push ${DOCKER_USERNAME}/cerulean |
| 35 | +docker-publish-impl: # docker-build-and-load |
| 36 | + docker login -u ${DOCKER_USERNAME} -p $${DOCKER_TOKEN}; \ |
| 37 | + docker push ${DOCKER_USERNAME}/cerulean; \ |
| 38 | + cerulean_version="$$(cat $(VERSION_FILE))"; \ |
| 39 | + if test -n "$${cerulean_version}"; then \ |
| 40 | + docker image tag cerulean:latest ${DOCKER_USERNAME}/cerulean:"$${cerulean_version}"; \ |
| 41 | + docker push ${DOCKER_USERNAME}/cerulean:"$${cerulean_version}"; \ |
| 42 | + fi; \ |
37 | 43 |
|
38 | 44 | docker-publish: |
39 | 45 | $(call with-secrets,docker-publish-impl) |
@@ -66,3 +72,28 @@ clj-deps-update: |
66 | 72 | neil dep update |
67 | 73 |
|
68 | 74 | update-dependencies: | npm-update clj-deps-update nix-deps-lock nix-npm-deps-lock |
| 75 | + |
| 76 | +ci-init: |
| 77 | + git config --global user.name "cerulean-ci" |
| 78 | + git config --global user.email "[email protected]" |
| 79 | + |
| 80 | +prepare-release-version: |
| 81 | + echo $$(date -u +"%Y-%m-%dT%H.%M.%S") > $(VERSION_FILE) |
| 82 | + git add $(VERSION_FILE) |
| 83 | + |
| 84 | +release: | test-all |
| 85 | + $(MAKE) docker-publish |
| 86 | + |
| 87 | +release-if-necessary: |
| 88 | + if test -n "$$(git rev-list --after='24 hours' HEAD)"; then \ |
| 89 | + echo "release"; \ |
| 90 | + $(MAKE) release;\ |
| 91 | + else \ |
| 92 | + echo "last commit committed before 24 hours, do not release"; \ |
| 93 | + fi \ |
| 94 | + |
| 95 | +ci-release-nightly: | ci-init prepare-release-version |
| 96 | + $(MAKE) release-if-necessary |
| 97 | + |
| 98 | +ci-test-all: | ci-init |
| 99 | + $(MAKE) test-all |
0 commit comments