# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
---
version: 2
mergeable:
  # we can not use `pull_request.*` which including event `pull_request.labeled`, according to https://github.com/mergeability/mergeable/issues/643,
  # otherwise mergeable will keep add or remove label endless, we just need this CI act like the default behavior as
  # GitHub action workflow `pull_requests` https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request like,
  # which only trigger runs when a pull_request event's activity type is opened, synchronize, or reopened
  - when: pull_request.opened, pull_request.reopened, pull_request.synchronize
    name: synchronize change for sql files
    validate:
      # Sql files must change synchronize
      - do: dependent
        files:
          - 'dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_h2.sql'
          - 'dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql'
          - 'dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgresql.sql'
        message: 'Sql files not change synchronize'
    # Add labels 'sql not sync' and comment to reviewers if Sql files not change synchronize
    fail:
      - do: comment
        payload:
          body: >
            :warning: This PR do not change database DDL synchronize.
        leave_old_comment: false
      - do: labels
        add: 'sql not sync'
    # Remove labels 'sql not sync' if pass
    pass:
      - do: labels
        delete: 'sql not sync'
