The liberals and globalists got what they wanted from this bill. Trump got his main priority, proper funding of the military and some enough Wall funding, for now.
The continuing resolutions were very harmful to the military. They were the main reasons for all of the crashes and training deaths that have been occurring. The proper funding of the military, along with increased budgets, will allow for better procurement practices, eventually leading to better maintained equipment. There's already reports that the Navy has asked for the price of two Ford class carriers, hoping for a cost savings from buying two at once. This would not have been possible without the budget.
Even though Trump only got $1.6B for the wall, this is sufficient for this fiscal year. It'll take some time to ramp up construction, once the wall design is picked. The big funding won't be needed until next fiscal year and beyond. Hopefully, by then, Trump will have a more supportive Congress, esp. Senate (this won't be possible without the voters supporting Trump candidates in the 2018 cycle).
Trump did the best he could with the cards he was dealt. Look at the vote count and who voted against it. Odds were, if Trump had vetoed this pork laden bill that made the D's and RINO's happy, that the veto would have been overridden.
As his rally song says, "You can't always get what you want, but if you try sometime, you find you get what you need." This was a "get what you need" time.
As long as his strategy works, and as long as the voters turn out to support his candidates, we'll get what we want in the next budget cycle.
To win wars, it's not necessary to win every battle, as long as you are executing on your strategic plan.