Separate the concerns: keep the BrowserStack workflow triggered only on labeled, and create a lightweight auto-labeling workflow that applies safe_to_test to dependabot PRs

This commit is contained in:
zinduolis
2026-03-11 19:41:40 +10:00
parent e752574172
commit 656b4e29e5
2 changed files with 38 additions and 6 deletions
@@ -0,0 +1,35 @@
name: 'Auto-label Dependabot PRs'
on:
pull_request_target:
branches: [ master ]
types: [ opened, synchronize ]
jobs:
auto-label:
name: 'Apply safe_to_test for Dependabot'
if: github.event.pull_request.user.login == 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- name: 'Add safe_to_test label'
uses: actions/github-script@v8
with:
script: |
const { owner, repo } = context.repo;
const issue_number = context.payload.pull_request.number;
// Remove first so re-adding always fires a labeled event,
// which triggers the BrowserStack workflow.
try {
await github.rest.issues.removeLabel({
owner, repo, issue_number,
name: 'safe_to_test'
});
} catch (e) {
if (e.status !== 404) throw e;
}
await github.rest.issues.addLabels({
owner, repo, issue_number,
labels: ['safe_to_test']
});
+3 -6
View File
@@ -3,7 +3,7 @@ name: 'BrowserStack Test'
on:
pull_request_target:
branches: [ master ]
types: [ labeled, opened, synchronize ]
types: [ labeled ]
jobs:
ubuntu-job:
@@ -12,15 +12,12 @@ jobs:
concurrency:
group: browserstack-${{ github.event.pull_request.number }}
cancel-in-progress: true
if: |
github.event.label.name == 'safe_to_test' ||
github.event.pull_request.user.login == 'dependabot[bot]'
if: github.event.label.name == 'safe_to_test'
env:
GITACTIONS: true
steps:
- name: 'Remove safe_to_test label'
if: github.event.label.name == 'safe_to_test'
uses: actions/github-script@v8
with:
script: |
@@ -79,4 +76,4 @@ jobs:
- name: 'BrowserStackLocal Stop' # Terminating the BrowserStackLocal tunnel connection
uses: browserstack/github-actions/setup-local@master
with:
local-testing: stop
local-testing: stop