I was discharged from the navy for testing positive for amphetamines.
All branches take the same action as they have a zero tolerance policy and a administrative discharge of other-than-honorable will be awarded. You can fight it by request of court martial but losing means your discharge will turned to a bad conduct discharge just below dishonorable which will stain your record like a felony could. Before your test you can list known false positve drugs and supplemnts that you've taken if you know your gonna fail and fight it that way.
I have heard of some rare cases where a general under honorable discharge was given.
Good luck though.