Can you provide more details about your setup? I don't understand how the condition you're describing could happen.
The workspace is created on the specific Docker slave which is executing the build. The build data which stores the results of each build are stored on the master. Since the results are stored on the master, they are preserved even when the Docker slave no longer exists. The job should only rebuild branches whose SHA1 has not yet been built.
Each time a new job is defined, all matching branches for that job will be built. That is intentional. However, after the matching branches have been built, then only the matching branches which have changes will be built.
Can you provide more details about your setup? I don't understand how the condition you're describing could happen.
The workspace is created on the specific Docker slave which is executing the build. The build data which stores the results of each build are stored on the master. Since the results are stored on the master, they are preserved even when the Docker slave no longer exists. The job should only rebuild branches whose SHA1 has not yet been built.
Each time a new job is defined, all matching branches for that job will be built. That is intentional. However, after the matching branches have been built, then only the matching branches which have changes will be built.