fingerprint method

  1. @override
Future<NativeStepFingerprint> fingerprint(
  1. NativeStepContext context
)
override

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()),
  );
}