Hard to say what you are doing without seeing the config. Your config is doing this, neither lein or shadow-cljs will do this on their own.
I typically recommend keeping things separate since that make things much easier to understand and debug.
shadow-cljs release app && lein ring uberjar
lein or ring don't need to do anything with CLJS other than taking the files shadow-cljs produced and putting them into the .jar they create. That typically happens automatically if you output to some folder on your classpath (eg. resources/public/js).