Skip to content
This repository has been archived by the owner on Sep 3, 2020. It is now read-only.

Add support for auto tag #15

Open
rverma-nikiai opened this issue Jun 12, 2019 · 5 comments
Open

Add support for auto tag #15

rverma-nikiai opened this issue Jun 12, 2019 · 5 comments
Assignees
Labels
community enhancement New feature or request

Comments

@rverma-nikiai
Copy link

Drone docker plugin has support for auto tag, may be we can borrow some code from there..

@kozmagabor kozmagabor self-assigned this Jun 12, 2019
@kozmagabor kozmagabor added enhancement New feature or request community labels Jun 12, 2019
@andrewmclagan
Copy link

At present this plugin is a simple shell script. Would need to migrate to Go or another language to add support for this.

@andrewmclagan
Copy link

andrewmclagan commented Jun 17, 2019

Thinking this through, we may be able to use the Kaniko binary as a replacement for the docker binary and build then use the base drone-docker plugin. Simply replacing the docker binary with Kaniko binary? Or perhaps importing the Kaniko go package?

--- thoughts?

@bonifaido
Copy link
Member

I don't think that the docker binary is simply replaceable with the kaniko binary since the command line arguments differ. Importing it as a package is another thing, let me have a look on the auto-tag feature, I'm not that familiar with that one.

@annProg
Copy link
Contributor

annProg commented Nov 4, 2019

possible solution

diff --git a/plugin.sh b/tmp/plugin.sh
index 57c2e34..c650ccd 100755
--- a/plugin.sh
+++ b/tmp/plugin.sh
@@ -50,6 +50,30 @@ if [ -n "${PLUGIN_BUILD_ARGS_FROM_ENV:-}" ]; then
     BUILD_ARGS_FROM_ENV=$(echo "${PLUGIN_BUILD_ARGS_FROM_ENV}" | tr ',' '\n' | while read build_arg; do echo "--build-arg ${build_arg}=$(eval "echo \$$build_arg")"; done)
 fi
 
+# auto_tag, if set auto_tag: true, auto generate .tags file
+if [[ "${PLUGIN_AUTO_TAG:-}" == "true" ]]; then
+    # only support va.b.c and a.b.c
+    TAG=$(echo "${DRONE_TAG}" |sed 's/^v//g')
+    l=$(echo "${TAG}" |tr '.' '\n' |wc -l)
+    echo ${TAG} |grep -E "[a-z-]" &>/dev/null && r=0 || r=1
+
+       if [ ! -n "${TAG:-}" ];then
+               echo "latest" > .tags
+       elif [ ${r} -eq 0 -o ${l} -gt 3 ];then
+        echo "v${TAG},latest" > .tags
+    else
+        major=$(echo "${TAG}" |awk -F'.' '{print $1}')
+        minor=$(echo "${TAG}" |awk -F'.' '{print $2}')
+        release=$(echo "${TAG}" |awk -F'.' '{print $3}')
+    
+        major=${major:-0}
+        minor=${minor:-0}
+        release=${release:-0}
+    
+        echo "v${major},v${major}.${minor},v${major}.${minor}.${release},latest" > .tags
+    fi  
+fi
+
 if [ -n "${PLUGIN_TAGS:-}" ]; then
     DESTINATIONS=$(echo "${PLUGIN_TAGS}" | tr ',' '\n' | while read tag; do echo "--destination=${REGISTRY}/${PLUGIN_REPO}:${tag} "; done)
 elif [ -f .tags ]; then

@bonifaido
Copy link
Member

Looks promising! Would you mind contributing this in form of a PR @annProg ? 🙂

annProg added a commit to ops-itop/drone-kaniko that referenced this issue Nov 4, 2019
@annProg annProg mentioned this issue Nov 4, 2019
5 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
community enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants