diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b76529e..5bd8214 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,7 +58,12 @@ docker: - apk --update add py-pip - pip install docker-compose script: - - CACHE_IMAGE="${CI_REGISTRY_IMAGE:+$CI_REGISTRY_IMAGE/satnogs-network:$CI_COMMIT_REF_NAME}"; export CACHE_IMAGE + - | + [ -z "$CI_REGISTRY_IMAGE" ] || { + CACHE_IMAGE="$CI_REGISTRY_IMAGE/satnogs-network:$CI_COMMIT_REF_NAME}" + [ -z "$CI_COMMIT_TAG" ] || CACHE_IMAGE="$CI_REGISTRY_IMAGE/satnogs-network:latest" + export CACHE_IMAGE + } - docker-compose -f docker-compose.yml -f docker-compose.cache.yml pull cache_image || true - docker-compose -f docker-compose.yml -f docker-compose.cache.yml build --pull - | @@ -66,16 +71,24 @@ docker: docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY docker tag satnogs-network:latest $CI_REGISTRY_IMAGE/satnogs-network:$CI_COMMIT_REF_NAME docker push $CI_REGISTRY_IMAGE/satnogs-network:$CI_COMMIT_REF_NAME + [ -z "$CI_COMMIT_TAG" ] || { + docker tag satnogs-network:latest $CI_REGISTRY_IMAGE/satnogs-network:latest + docker push $CI_REGISTRY_IMAGE/satnogs-network:latest + } } [ -z "$DOCKERHUB_PASSWORD" ] || { docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASSWORD docker tag satnogs-network:latest librespace/satnogs-network:$CI_COMMIT_REF_NAME docker push librespace/satnogs-network:$CI_COMMIT_REF_NAME + [ -z "$CI_COMMIT_TAG" ] || { + docker tag satnogs-network:latest librespace/satnogs-network:latest + docker push librespace/satnogs-network:latest + } } only: refs: - master - - dev + - tags trigger_master: stage: trigger image: alpine @@ -88,15 +101,15 @@ trigger_master: - master variables: - $PIPELINE_TRIGGERS_MASTER -trigger_dev: +trigger_latest: stage: trigger image: alpine before_script: - apk add --no-cache curl script: - - for trigger in $PIPELINE_TRIGGERS_DEV; do curl -X POST "$trigger"; done + - for trigger in $PIPELINE_TRIGGERS_LATEST; do curl -X POST "$trigger"; done only: refs: - - dev + - tags variables: - - $PIPELINE_TRIGGERS_DEV + - $PIPELINE_TRIGGERS_LATEST diff --git a/docs/index.rst b/docs/index.rst index c03ff4e..19b5eaa 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,4 +7,5 @@ satnogs-network installation developer-guide + releasing maintenance diff --git a/docs/releasing.rst b/docs/releasing.rst new file mode 100644 index 0000000..3ae4a3d --- /dev/null +++ b/docs/releasing.rst @@ -0,0 +1,25 @@ +Releasing +========= + + +Versioning scheme +----------------- + +This repository follows `PEP-440 `_ versioning scheme. +All releases must use a `X.Y` segment version which signifies a final project release and is compatible with `Semantic Versioning `_. +The versions must be numbered in a consistently increasing fashion. +Major `X` will never need to be increased unless the application is completely rewritten. +Minor `Y` shall be increased on each release. +A Patch or additional segments, as described in SemVer, shall not be used. + + +Release procedure +----------------- + +To make a new release: + +#. Find the next available minor version among the whole set of already present tags in the repository. + +#. Create an annotated tag from `master` branch in GitLab with a commit message:: + + Tag version 'X.Y'