* Re-usable cache By use of branch as a cache key, we invalidate the cache very often. This leads to incresed builds time. By use of cache based on checksum of yarn.lock, we may drop the build time. It will increase the time every time checksum has changed. In our case, it happens multiple times per month. * Skip job run if no changes applied * Skip tests if no changes applied * Skip tests if no changes applied