This is an automated email from the ASF dual-hosted git repository.
zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new c7a0994fb0 [Chore] Add mergeable check (#16217)
c7a0994fb0 is described below
commit c7a0994fb0df3391f2e78a27752228f40ea93b7e
Author: xiangzihao <[email protected]>
AuthorDate: Wed Jun 26 20:05:49 2024 +0800
[Chore] Add mergeable check (#16217)
* add mergeable check
---
.asf.yaml | 3 +-
.github/workflows/mergeable.yml | 87 +++++++++++++++++------------------------
2 files changed, 38 insertions(+), 52 deletions(-)
diff --git a/.asf.yaml b/.asf.yaml
index abeb08c0b8..1a8f27e5e0 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -46,7 +46,8 @@ github:
- E2E
- Docs
- Frontend Build
-# - "Mergeable: milestone-label-check"
+ - "Mergeable: milestone-label-check"
+ - "Title Validator"
required_pull_request_reviews:
dismiss_stale_reviews: true
required_approving_review_count: 2
diff --git a/.github/workflows/mergeable.yml b/.github/workflows/mergeable.yml
index 8b7bd8799c..835b34bf57 100644
--- a/.github/workflows/mergeable.yml
+++ b/.github/workflows/mergeable.yml
@@ -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.`);
+ }