public void triggerBuild()

in amazon-sns-trigger-server/src/main/java/jetbrains/buildServer/clouds/amazon/sns/trigger/service/SnsBuildTriggeringPolicy.java [63:95]


  public void triggerBuild(@NotNull PolledTriggerContext context) throws BuildTriggerException {
    final Logger contextLogger = context.getLogger();

    AwsSnsBuildTriggerState state = new AwsSnsBuildTriggerState(
            context,
            myTriggeringContext.getObjectMapper(),
            contextLogger
    );

    // here it is safe to use context.getCustomDataStorage() without wrapper
    // because we are not going to put any data
    myTimeIntervalAction.executeCustomAction(context.getCustomDataStorage()::refresh);

    if (!state.hasNewNotifications()) {
      contextLogger.debug("No new SNS messages registered");
      return;
    }

    Map<String, SnsNotificationDto> registeredMessages = state.getRegisteredMessages();
    SnsNotificationDto latestSnsMessage = getLatest(registeredMessages);
    Set<String> registeredMessagesIds = registeredMessages.keySet();

    BuildPromotionEx buildPromotion = createBuildPromotion(context, latestSnsMessage);

    TriggeredByBuilder builder = new TriggeredByBuilder();
    builder.addParameter(TriggeredByBuilder.TYPE_PARAM_NAME, "sns");
    builder.addParameter(TriggeredByBuilder.TRIGGER_ID_PARAM_NAME, context.getTriggerDescriptor().getId());
    builder.addParameter(BuildQueueImpl.TRIGGERED_BY_QUEUE_OPTIMIZATION_ENABLED_PARAM, "false");

    ((BuildTypeEx) context.getBuildType()).addToQueue(buildPromotion, builder.toString());

    state.persist(registeredMessagesIds);
  }