This is my workflow as well, it's great. Github is configured so merging a PR into master will automatically produce a squashed commit.
My rule of thumb, always rebase unless you hit a series of merge conflict while rebasing. Then either merge, or squash your branch then re-run the rebase.