-
Notifications
You must be signed in to change notification settings - Fork 106
71 lines (60 loc) · 1.99 KB
/
label.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
name: Label
on:
pull_request:
branches: [master, vara-stage-1, vara-stage-2, vara-stage-3]
types: [labeled]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lbuild:
runs-on: ubuntu-latest
# if: github.event.label.name == 'A0-pleasereview' || github.event.label.name == 'E2-forcemacos'
steps:
- uses: actions/github-script@v6
id: label-checks
with:
script: |
const [owner, repo] = ["gear-tech", "gear"];
let { ref, payload: { number: issue_number } } = context;
console.log(ref);
// "refs/pull/3070/merge"
ref = "cl/issue-2888";
issue_number = 3070;
// List all labels of the current pull request.
const { data: labelsArr } = await github.rest.issues.listLabelsOnIssue({
owner,
repo,
issue_number,
});
const labels = labelsArr.map((label) => label.name);
let [linux, macos] = [
labels.includes("A0-pleasereview"),
labels.includes("E2-forcemacos")
];
if (!(linux || macos)) return;
// List the latest check runs
const {
data: { check_runs }
} = await github.rest.checks.listForRef({
owner,
repo,
ref,
});
console.log(check_runs);
for (run of check_runs) {
if (run.conclusion !== "skipped") continue;
if (linux && run.name === "build") {
await github.rest.checks.update({
owner,
repo,
check_run_id: run.id,
conclusion: "cancelled",
});
await github.rest.checks.rerequestRun({
owner,
repo,
check_run_id: run.id,
});
}
}