Properly adding an action to a ContentEntityForm
This is relatively simple when you define the form class yourself and one of the reasons Drupal 8 has gone all out on OOP. What you need to do is to extend the form class and implement the ::actions method. This would look like this:

class CustomEntityForm extends ContentEntityForm {
  ...

  protected function actions(array $form, FormStateInterface $form_state) {
    $actions =  parent::actions($form, $form_state);
    $actions['cancel'] = [
      '#type' =&gt; 'submit',
      '#value' =&gt; $this-&gt;t('Cancel'),
      '#submit' =&gt; ['::cancelSubmit'],
    ];
    return $actions;
  }

  public function cancelSubmit($form, FormStateInterface $form_state) {
    // Du custom submit validation
  }

}


You could also achieve this with normal form alter, but would need to place the submit button inside the actions element, which is usually called actions, fx

$form['actions']['cancel'] = array(
  '#type' =&gt; 'submit',
  '#weight' =&gt; 10001,
  '#submit' =&gt; array('cancel_submit'),
  '#value' =&gt; t('Cancel'),
);