RTC + Jenkins: Why is a new snapshot always created?
I made some experiences using RTC and Jenkins to understand how and when snapshots are created. These were the scenarios:
Supposing I have a snapshot on a Stream, and several changeset on top of it. If I request a build from that Stream, no snapshot is created, but what is getting actually built in this scenario?
Finally, in the item 1 above, a new snapshot is created even if there are no changesets to be accepted. Is there any other reason to create snapshots in this case?
- Conventional scenario of a Build Definition using a dedicated Build Repository Workspace;
- Using a Stream in the Build Definition instead of a Build Repository Workspace;
- Requesting a personal build from my personal Repository Workspace;
- Requesting a personal build from a Stream.
Supposing I have a snapshot on a Stream, and several changeset on top of it. If I request a build from that Stream, no snapshot is created, but what is getting actually built in this scenario?
Finally, in the item 1 above, a new snapshot is created even if there are no changesets to be accepted. Is there any other reason to create snapshots in this case?
Accepted answer
Hi Rafael,
> Therefore, I'm assuming that snapshots are created only when an Accept is performed. Is this right?
Yes.
> Supposing I have a snapshot on a Stream, and several changeset on top of it.
It will build the latest in the stream, ignoring any past snapshots. Note that if you're building directly against the stream, there's no isolation from ongoing deliveries to the stream while the build is running, so what gets loaded may not be consistent.
> a new snapshot is created even if there are no changesets to be accepted. Is there any other reason to create snapshots in this case?
Not particularly, but this way each build gets its own snapshot, so if others get deleted there's no downstream impact. The snapshot also gets a label that's consistent with the build's. This could be optimized out, but snapshots are actually pretty lightweight (it will point to previously created baselines). An extra compare between last snapshot and latest build workspace state would be needed too.
Comments
1 vote