I disassemble the weapon and put all of the metal parts into a bathtub full of the hottest water I can manage (which is pretty hot because we have our water heater set a bit high). I use either dish soap or Simple Green in the water. After letting the parts soak for a few, I pull them out and scrub them with a toothbrush onto which I have sprayed more dish soap or Simple Green. Then I throw them back in and repeat.
When I've washed everything twice, I take the receiver and barrel outside and wipe it down then spray out the nooks and crannies with compressed air. After that, I run a WD-40 soaked patch down the barrel, followed by a few dry patches to remove the WD-40, followed by a patch soaked in Ballistol.
I dry the rest of the parts first with the compressed air and then by hand and lightly oil them with Ballistol.
For the stock, I have a Scunci steam gun. I usually go over the wood twice, steaming and scrubbing an area with one of the plastic brushes and then wiping the area down with a cloth. That's followed up by whatever treatment I think the individual stock requires.
I've had some luck with the Scunci on cosmoline on the gun, but the bath tub seems a little more thorough..
Now that the gun is clean, dry and oiled, I put the parts away and leave the stock in a corner for a day or so to make sure it is dry from the steaming. I return to the bathroom and - VERY IMPORTANT - use foaming cleaner and a scrub brush on the bathtub so my wife won't kill me.