Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to publish multiple versions of same package to gitlab registry

I am working on a usecase where there is a requirement to publish multiple versions of same package.

enter image description here

I have to publish these version of package in to my gitlab npm registry. I have searched on this but everyone is telling to use scopes which is not possible in my requirement. Is there a way that i can publish both these versions to my gitlab registry?

when i try to publish first version its publishing fine but for second version its giving me an error -

enter image description here

like image 736
Sai Vamsi Avatar asked Oct 16 '25 08:10

Sai Vamsi


1 Answers

Alialising is the life saver if you want to publish multiple versions of same package in gitlab, especially if you are trying to publish unscoped packages.

#!/bin/sh

list=$(npm ll --json | jq -r 'recurse(.dependencies[]) | [.name+"@"+.version] |@csv' | sed 's/"//g'| sort -u)
for i in $list; do
        version_num=$(echo $i | rev | awk -F'@' '{print $1}' | tr '\.' '.'| rev);
        name=$(echo $i | perl -pne 's/@[0-9]+(\.[0-9]+)+$//');
        npm install $name-$version_num@npm:$i;
done


dirs=$(ls node_modules | grep -Eo ".*\-[0-9]+\.[0-9]+\.[0-9]+")
for i in $dirs; do
        echo $i
        npm publish node_modules/$i --registry https://gitlabserver.com/api/v4/projects/8/packages/npm/
done


atdirs=$(ls node_modules | grep "@")
for k in $atdirs; do
        indirs=$(ls  node_modules/$k | grep -Eo ".*\-[0-9]+\.[0-9]+\.[0-9]+")
        for j in $indirs;do
                echo $k/$j
                npm publish node_modules/$k/$j --registry https://gitlabserver.com/api/v4/projects/8/packages/npm/
        done
done
like image 57
Sai Vamsi Avatar answered Oct 19 '25 10:10

Sai Vamsi