When my hometown of Columbus, Indiana was taking bids for a new wastewater treatment plant what I found disturbing was the fact that a local company (Gaylor Electric) wasn't allowed to bid for part of the work because they didn't use union labor. Even though they are a local company with local workers they were not considered. Ever if they had the lowest bid they would not be chosen. Even if they were the best qualified they would not get a chance. The city said they adopted this policy to protect it from companies going on strike.
The only things a government should consider when giving a contract for a project is the bid price and the quality of the company making the bid. The goal should be to find the lowest bid with the highest quality. Companies can easily show how and why they are the best based on projects they have completed in the past, their success rate, and their references. Governments will save more money by getting the lowest price with the best quality no matter if the company is union or non-union.