diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 02c47907e..565c2cdf1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,6 +17,7 @@ stages: - ide-deploy - nix - nix-push + - versioning # TODO provide sensible CI for master dont-merge-to-master: @@ -99,6 +100,13 @@ dont-merge-to-master: - eval $(opam config env) - scripts/setup_repos.sh +version_scheduled_job: + stage: versioning + script: + - scripts/versioning.sh + only: + - schedules + local-dune-job: <<: *before_script stage: test @@ -113,6 +121,8 @@ local-dune-job: only: - merge_requests - dev + - tags + - triggers - /^.*-run-dev$/ # Run a docker build without publishing to the registry @@ -158,6 +168,7 @@ build-and-package-debian-9: <<: *build_binary only: - dev + - tags - /^.*-run-dev$/ build-and-package-debian-10: @@ -175,6 +186,7 @@ build-and-package-debian-10: only: - merge_requests - dev + - tags - /^.*-run-dev$/ build-and-package-ubuntu-18-04: @@ -188,6 +200,7 @@ build-and-package-ubuntu-18-04: <<: *build_binary only: - dev + - tags - /^.*-run-dev$/ build-and-package-ubuntu-19-10: @@ -201,6 +214,7 @@ build-and-package-ubuntu-19-10: <<: *build_binary only: - dev + - tags - /^.*-run-dev$/ # Pages are deployed from dev, be careful not to override 'next' @@ -232,7 +246,8 @@ run-webide-unit-tests: - npm ci - export LIGO_CMD=/bin/ligo && npm run test rules: - - changes: + - if: '$TAG_JOB != "true"' + changes: - tools/webide/** when: always @@ -256,10 +271,11 @@ build-publish-ide-image: . - docker push "${WEBIDE_IMAGE_NAME}:${CI_COMMIT_SHORT_SHA}" rules: - - changes: + - if: '$TAG_JOB != "true"' + changes: - tools/webide/** when: always - - if: '$CI_COMMIT_REF_NAME == "dev"' + if: '$CI_COMMIT_REF_NAME == "dev"' when: always run-webide-e2e-tests: @@ -271,10 +287,11 @@ run-webide-e2e-tests: - export WEBIDE_IMAGE="${WEBIDE_IMAGE_NAME}:${CI_COMMIT_SHORT_SHA}" - docker-compose run e2e rules: - - changes: + - if: '$TAG_JOB != "true"' + changes: - tools/webide/** when: always - - if: '$CI_COMMIT_REF_NAME == "dev"' + if: '$CI_COMMIT_REF_NAME == "dev"' when: always deploy-handoff: diff --git a/scripts/versioning.sh b/scripts/versioning.sh new file mode 100755 index 000000000..12336776a --- /dev/null +++ b/scripts/versioning.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +apt-get update -qq +apt-get -y -qq install jq + +fetch_version () { + local LAST_VERSION=`curl --silent "https://gitlab.com/api/v4/projects/12294987/repository/tags?search=^V&order_by=name" | jq "map(.name)[0]"` + MAJOR=`echo $LAST_VERSION | sed -E "s/\.|\"|\V/\n/g" | grep -e . | sed -n 1p` + MINOR=`echo $LAST_VERSION | sed -E "s/\.|\"|\V/\n/g" | grep -e . | sed -n 2p` + PATCH=`echo $LAST_VERSION | sed -E "s/\.|\"|\V/\n/g" | grep -e . | sed -n 3p` +} +increment_patch () { + fetch_version + local NEW_PATCH=$((PATCH+1)) + NEW_VERSION="${MAJOR}.${MINOR}.${NEW_PATCH}" +} +increment_minor () { + fetch_version + local NEW_MINOR=$((MINOR+1)) + NEW_VERSION="${MAJOR}.${NEW_MINOR}.0" +} +increment_major () { + fetch_version + local NEW_MAJOR=$((MAJOR+1)) + NEW_VERSION="${NEW_MAJOR}.0.0" +} + +tag_dev () { + curl --request POST --header "PRIVATE-TOKEN: ${AUTH}" https://gitlab.com/api/v4/projects/12294987/repository/tags -d "tag_name=V.${1}&ref=dev" +} + + +increment_minor +echo $NEW_VERSION +# increment_major +# echo $NEW_VERSION +# increment_patch +# echo $NEW_VERSION + +tag_dev $NEW_VERSION + + +# curl --header "PRIVATE-TOKEN: W-7UVDzeofRmejE17_Gn" https://gitlab.com/api/v4/version +# curl --request POST --header "PRIVATE-TOKEN: " https://gitlab.example.com/api/v4/projects/5/repository/branches?branch=newbranch&ref=master +