fingerprint method
Compute a fingerprint for this step based on its inputs.
Used for build caching to determine if a step needs to be re-executed.
Implementation
@override
Future<NativeStepFingerprint> fingerprint(NativeStepContext context) async {
final buffer = StringBuffer();
buffer.write(id);
for (final cmd in expandRecipeCommands(
commands,
context.buildContext,
context.source,
)) {
buffer.write(cmd.join(' '));
}
if (workingDirectory != null) {
buffer.write(
expandRecipeValue(
workingDirectory!,
context.buildContext,
context.source,
),
);
}
if (environment != null) {
buffer.write(
expandRecipeStringMap(
environment!,
context.buildContext,
context.source,
),
);
}
return NativeStepFingerprint(
id: id,
hash: fingerprintHash(buffer.toString()),
);
}