diff --git a/.drone-write-tags.sh b/.drone-write-tags.sh new file mode 100755 index 0000000..b691361 --- /dev/null +++ b/.drone-write-tags.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# Write Docker tags for Drone CI: version-YYMMDD, version, major version, latest + +VERSION="$1" + +if test -z "$VERSION"; then + echo "Usage: $0 " + exit 1 +fi + +if [[ "$VERSION" == *"alpha"* || "$VERSION" == *"dev"* ]]; then + # This should never trigger if reference based tagging is enabled + echo "ERROR: Pushing alpha / dev tags is not supported" + exit 1 +fi + +major_version="$(printf '%s' "$VERSION" | cut -d . -f 1)" + +# Date based tag +printf '%s' "$VERSION-$(date +%Y%m%d)," +# Program version +printf '%s' "$VERSION," + +if [[ "$VERSION" == *"beta"* ]]; then + printf '%s' "$major_version-beta," + printf '%s' "latest-beta" +else # Stable or rc build + printf '%s' "$major_version," + printf '%s' "latest" +fi diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..7f68d1f --- /dev/null +++ b/.drone.yml @@ -0,0 +1,37 @@ +--- +kind: pipeline +type: docker +name: build + +steps: +- name: "test" + image: python:3.8 + commands: + - "git submodule update --recursive --remote --init" + - "pip install -r requirements-docker.txt" + - "python3 setup.py install" + - "python3 -m unittest discover test/ --verbose" + +- name: "set Docker image tags" + image: bash + commands: + - "bash .drone-write-tags.sh $DRONE_TAG > .tags" + - "# Will build the following tags:" + - "cat .tags" + +- name: "build Docker image" + image: plugins/docker + settings: + repo: jlu5/pylink + username: + from_secret: docker_user + password: + from_secret: docker_token + +trigger: + event: + - tag + ref: + exclude: + - refs/tags/*alpha* + - refs/tags/*dev*