I've seen all four used in the context of something being finished. What's the difference between them?
My non-native intuition, with examples stolen/adapted from alc:
They all means "to finish", but "to finish" has two different meanings.
One is "to get through" or "to come to an end", which means something ended.
The other is "to complete" or "to come to be available", which means something is ready.
済む, 終わる = the former
出来る, 上がる = the latter