|
|
|
@ -14,65 +14,50 @@
|
|
|
|
|
# KIND, either express or implied. See the License for the |
|
|
|
|
# specific language governing permissions and limitations |
|
|
|
|
# under the License. |
|
|
|
|
--- |
|
|
|
|
#version: 2 |
|
|
|
|
|
|
|
|
|
on: |
|
|
|
|
pull_request: |
|
|
|
|
types: |
|
|
|
|
- opened |
|
|
|
|
- reopened |
|
|
|
|
- synchronize |
|
|
|
|
- labeled |
|
|
|
|
- unlabeled |
|
|
|
|
- milestoned |
|
|
|
|
- demilestoned |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
name: "Mergeable" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jobs: |
|
|
|
|
result: |
|
|
|
|
name: "Mergeable: milestone-label-check" |
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
timeout-minutes: 30 |
|
|
|
|
timeout-minutes: 10 |
|
|
|
|
steps: |
|
|
|
|
- name: Status |
|
|
|
|
run: | |
|
|
|
|
echo "Temporary skipping this check" |
|
|
|
|
|
|
|
|
|
#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: sync-sql-ddl |
|
|
|
|
# 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' |
|
|
|
|
# |
|
|
|
|
# - when: pull_request.* |
|
|
|
|
# name: milestone-label-check |
|
|
|
|
# validate: |
|
|
|
|
# - do: milestone |
|
|
|
|
# no_empty: |
|
|
|
|
# enabled: false # Cannot be empty when true. |
|
|
|
|
# message: 'Milestone is required and cannot be empty.' |
|
|
|
|
# - do: label |
|
|
|
|
# and: |
|
|
|
|
# - must_include: |
|
|
|
|
# regex: 'feature|bug|improvement|document|chore|revert' |
|
|
|
|
# message: 'Label must include one of the following: `feature`, `bug`, `improvement`, `document`, `chore`, `revert`' |
|
|
|
|
# - must_include: |
|
|
|
|
# regex: 'ready-to-merge' |
|
|
|
|
# message: 'Please check if there are PRs that already have a `ready-to-merge` label and can be merged, if exists please merge them first.' |
|
|
|
|
- name: Check milestone and labels |
|
|
|
|
uses: actions/github-script@v7 |
|
|
|
|
with: |
|
|
|
|
script: | |
|
|
|
|
const { data } = await github.request("GET /repos/{owner}/{repo}/pulls/{pr}", { |
|
|
|
|
owner: context.repo.owner, |
|
|
|
|
repo: context.repo.repo, |
|
|
|
|
pr: context.payload.pull_request.number |
|
|
|
|
}); |
|
|
|
|
if (data.milestone) { |
|
|
|
|
core.info(`This pull request has a milestone: ${data.milestone.title}`); |
|
|
|
|
} else { |
|
|
|
|
core.setFailed(`A maintainer needs to set the milestone for this pull request.`); |
|
|
|
|
} |
|
|
|
|
let labeledFlag = false; |
|
|
|
|
for (const label of data.labels) { |
|
|
|
|
if (['feature', 'bug', 'improvement', 'document', 'chore', 'DSIP', 'CI&CD', 'revert'].includes(label.name)) { |
|
|
|
|
core.info(`This pull request has a valid label: ${label.name}`); |
|
|
|
|
labeledFlag = true; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (!labeledFlag) { |
|
|
|
|
core.setFailed(`A maintainer needs to set a valid label for this pull request.`); |
|
|
|
|
} |
|
|
|
|