continue-on-error を使うことでコマンドがエラーになっても処理を継続できる。

    steps:
      - ...
      - name: Error
        # エラーでも処理を継続する
        continue-on-error: true
        # あとで実行結果を参照するため、IDを振っておく
        id: error_execution
        # ディレクトリが存在することで、2回目は確実にエラーになる
        run: |
          mkdir hoge
          mkdir hoge
      - name: Error handling
        if: ${{ steps.error_execution.outcome == 'failure' }}
        run: |
          echo "Error handling"
          echo $
          exit 1

ref. GitHub Actionsでエラーの時だけ特定の処理を実行する