|
| 1 | +# This Makefile holds all targets for deploying and undeploying |
| 2 | +# Uses the variable APT_REPO to determine which apt repos should be used to deploy |
| 3 | + |
| 4 | +# Attention: This Makefile depends on package-debian.mk! |
| 5 | + |
| 6 | +.PHONY: deploy-check |
| 7 | +deploy-check: |
| 8 | + @case X"${VERSION}" in *-SNAPSHOT) echo "i will not upload a snaphot version for you" ; exit 1; esac; |
| 9 | + @if [ X"${APT_API_USERNAME}" = X"" ] ; then echo "supply an APT_API_USERNAME environment variable"; exit 1; fi; |
| 10 | + @if [ X"${APT_API_PASSWORD}" = X"" ] ; then echo "supply an APT_API_PASSWORD environment variable"; exit 1; fi; |
| 11 | + @if [ X"${APT_API_SIGNPHRASE}" = X"" ] ; then echo "supply an APT_API_SIGNPHRASE environment variable"; exit 1; fi; |
| 12 | + |
| 13 | +.PHONY: upload-package |
| 14 | +upload-package: deploy-check $(DEBIAN_PACKAGE) |
| 15 | + @echo "... uploading package" |
| 16 | + @$(APTLY) -F file=@"${DEBIAN_PACKAGE}" "${APT_API_BASE_URL}/files/$$(basename ${DEBIAN_PACKAGE})" |
| 17 | + |
| 18 | +.PHONY: add-package-to-repo |
| 19 | +add-package-to-repo: upload-package |
| 20 | +ifeq ($(APT_REPO), ces-premium) |
| 21 | + @echo "... add package to ces-premium repository" |
| 22 | + @$(APTLY) -X POST "${APT_API_BASE_URL}/repos/ces-premium/file/$$(basename ${DEBIAN_PACKAGE})" |
| 23 | +else |
| 24 | + @echo "\n... add package to ces repository" |
| 25 | + @$(APTLY) -X POST "${APT_API_BASE_URL}/repos/ces/file/$$(basename ${DEBIAN_PACKAGE})" |
| 26 | +endif |
| 27 | + |
| 28 | +define aptly_publish |
| 29 | + $(APTLY) -X PUT -H "Content-Type: application/json" --data '{"Signing": { "Batch": true, "Passphrase": "${APT_API_SIGNPHRASE}"}}' ${APT_API_BASE_URL}/publish/$(1)/$(2) |
| 30 | +endef |
| 31 | + |
| 32 | +.PHONY: publish |
| 33 | +publish: |
| 34 | + @echo "\n... publish packages" |
| 35 | +ifeq ($(APT_REPO), ces-premium) |
| 36 | + @$(call aptly_publish,ces-premium,bionic) |
| 37 | +else |
| 38 | + @$(call aptly_publish,ces,focal) |
| 39 | + @$(call aptly_publish,ces,bionic) |
| 40 | +endif |
| 41 | + |
| 42 | +.PHONY: deploy |
| 43 | +deploy: add-package-to-repo publish |
| 44 | + |
| 45 | +define aptly_undeploy |
| 46 | + PREF=$$(${APTLY} "${APT_API_BASE_URL}/repos/$(1)/packages?q=${ARTIFACT_ID}%20(${VERSION})"); \ |
| 47 | + ${APTLY} -X DELETE -H 'Content-Type: application/json' --data "{\"PackageRefs\": $${PREF}}" ${APT_API_BASE_URL}/repos/$(1)/packages |
| 48 | +endef |
| 49 | + |
| 50 | +.PHONY: remove-package-from-repo |
| 51 | +remove-package-from-repo: |
| 52 | +ifeq ($(APT_REPO), ces-premium) |
| 53 | + @$(call aptly_undeploy,ces-premium) |
| 54 | +else |
| 55 | + @$(call aptly_undeploy,ces) |
| 56 | +endif |
| 57 | + |
| 58 | +.PHONY: undeploy |
| 59 | +undeploy: deploy-check remove-package-from-repo publish |
| 60 | + |
| 61 | +.PHONE: lint-deb-package |
| 62 | +lint-deb-package: debian |
| 63 | + @lintian -i $(DEBIAN_PACKAGE) |
0 commit comments