The old M_PI was a Double, but the function did expect a CGFloat. A cast would be the solution.
let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1)
With respect to Swift 5 it would be now:
let action = SKAction.rotate(byAngle: .pi, duration:1)
No need to cast anymore