From 4f8bfd89d849ea60ff868ceb492c4dc39ce1ac4b Mon Sep 17 00:00:00 2001 From: ChristianZaccaria Date: Mon, 14 Oct 2024 15:25:01 +0100 Subject: [PATCH 1/3] Dependabot Enhancements: - Ignore updating patch versions to focus on major and minor updates. - Limit number of PRs opened. - Add dependabot labeler workflow to add required labels to automatically add PRs to merge queues. - Add merge_group condition on test workflows to be ran on merge queues. --- .github/dependabot.yml | 31 ++++++++++++++++------- .github/workflows/dependabot-labeler.yaml | 17 +++++++++++++ .github/workflows/e2e_tests.yaml | 1 + .github/workflows/pre-commit.yaml | 1 + .github/workflows/unit-tests.yml | 1 + 5 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/dependabot-labeler.yaml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index fb121a71..41474098 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,18 +4,16 @@ version: 2 updates: # This is to update requirements.txt files in the guided-demos, and e2e directories. - # The group configuration option is used to group updates for consistency across related directories. - package-ecosystem: "pip" directories: - "**/demo-notebooks/guided-demos*" - "/tests/e2e" schedule: - interval: "weekly" - groups: - requirements.txt: - patterns: - - "*" - open-pull-requests-limit: 10 + interval: "daily" + ignore: + - dependency-name: "*" + update-types: ["version-update:semver-patch"] + open-pull-requests-limit: 4 labels: - "test-guided-notebooks" @@ -23,7 +21,22 @@ updates: - package-ecosystem: "pip" directory: "/" schedule: - interval: "weekly" - open-pull-requests-limit: 10 + interval: "daily" + ignore: + - dependency-name: "*" + update-types: ["version-update:semver-patch"] + open-pull-requests-limit: 1 labels: - "test-guided-notebooks" + + # npm means yarn in this case, this keeps yarn.lock up to date with constraints in package.json. + - package-ecosystem: "npm" + directory: "/ui-tests" + schedule: + interval: "daily" + ignore: + - dependency-name: "*" + update-types: ["version-update:semver-patch"] + open-pull-requests-limit: 1 + labels: + - "test-ui-notebooks" diff --git a/.github/workflows/dependabot-labeler.yaml b/.github/workflows/dependabot-labeler.yaml new file mode 100644 index 00000000..86f4ccd9 --- /dev/null +++ b/.github/workflows/dependabot-labeler.yaml @@ -0,0 +1,17 @@ +# This workflow file adds the 'lgtm' and 'approved' labels to Dependabot PRs +# This is done to ensure that the PRs that pass e2e are automatically merged/added to merge-queues by the CodeFlare bot +name: Dependabot Labeler + +on: + pull_request: + +jobs: + add-approve-lgtm-label: + if: github.actor == 'dependabot[bot]' + runs-on: ubuntu-latest + steps: + - name: Add approve and lgtm labels to Dependabot PR + run: | + gh pr edit ${{ github.event.pull_request.number }} --add-label "lgtm" --add-label "approved" + env: + GITHUB_TOKEN: ${{ secrets.CODEFLARE_MACHINE_ACCOUNT_TOKEN }} diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index d216df9d..2899f0a3 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -19,6 +19,7 @@ on: - '**.adoc' - '**.md' - 'LICENSE' + merge_group: concurrency: group: ${{ github.head_ref }}-${{ github.workflow }} diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 4aa51882..e5c16646 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -7,6 +7,7 @@ on: - 'v*' pull_request: workflow_dispatch: + merge_group: jobs: precommit: diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index b7d8ba61..7391bb40 100755 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -5,6 +5,7 @@ on: branches: [ main ] pull_request: branches: [ main ] + merge_group: jobs: unit-tests: From 831584ad875a2596fc01d07e38b514acc81d69ab Mon Sep 17 00:00:00 2001 From: ChristianZaccaria Date: Tue, 22 Oct 2024 10:43:45 +0100 Subject: [PATCH 2/3] Trigger e2e in PR if e2e label is added --- .github/dependabot.yml | 3 +++ .github/workflows/dependabot-labeler.yaml | 2 +- .github/workflows/e2e_tests.yaml | 2 +- .github/workflows/guided_notebook_tests.yaml | 3 +-- .github/workflows/ui_notebooks_test.yaml | 3 +-- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 41474098..cc89f631 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -15,6 +15,7 @@ updates: update-types: ["version-update:semver-patch"] open-pull-requests-limit: 4 labels: + - "dependabot" - "test-guided-notebooks" # pip means poetry in this case, this keeps poetry.lock up to date with constraints in pyproject.toml. @@ -27,6 +28,7 @@ updates: update-types: ["version-update:semver-patch"] open-pull-requests-limit: 1 labels: + - "dependabot" - "test-guided-notebooks" # npm means yarn in this case, this keeps yarn.lock up to date with constraints in package.json. @@ -39,4 +41,5 @@ updates: update-types: ["version-update:semver-patch"] open-pull-requests-limit: 1 labels: + - "dependabot" - "test-ui-notebooks" diff --git a/.github/workflows/dependabot-labeler.yaml b/.github/workflows/dependabot-labeler.yaml index 86f4ccd9..e5825f7d 100644 --- a/.github/workflows/dependabot-labeler.yaml +++ b/.github/workflows/dependabot-labeler.yaml @@ -7,7 +7,7 @@ on: jobs: add-approve-lgtm-label: - if: github.actor == 'dependabot[bot]' + if: github.actor == 'dependabot[bot]' && contains(github.event.pull_request.labels.*.name, 'dependabot') runs-on: ubuntu-latest steps: - name: Add approve and lgtm labels to Dependabot PR diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 2899f0a3..976be87e 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -30,7 +30,7 @@ env: jobs: kubernetes: - + if: contains(github.event.pull_request.labels.*.name, 'e2e') || github.event_name == 'merge_group' runs-on: ubuntu-20.04-4core-gpu steps: diff --git a/.github/workflows/guided_notebook_tests.yaml b/.github/workflows/guided_notebook_tests.yaml index eb6c5cd2..7678ebd1 100644 --- a/.github/workflows/guided_notebook_tests.yaml +++ b/.github/workflows/guided_notebook_tests.yaml @@ -2,7 +2,6 @@ name: Guided notebooks tests on: pull_request: - types: [ labeled ] concurrency: group: ${{ github.head_ref }}-${{ github.workflow }} @@ -13,7 +12,7 @@ env: jobs: verify-0_basic_ray: - if: ${{ github.event.label.name == 'test-guided-notebooks' }} + if: contains(github.event.pull_request.labels.*.name, 'test-guided-notebooks') runs-on: ubuntu-20.04-4core steps: diff --git a/.github/workflows/ui_notebooks_test.yaml b/.github/workflows/ui_notebooks_test.yaml index 283486e6..9252c34f 100644 --- a/.github/workflows/ui_notebooks_test.yaml +++ b/.github/workflows/ui_notebooks_test.yaml @@ -2,7 +2,6 @@ name: UI notebooks tests on: pull_request: - types: [labeled] concurrency: group: ${{ github.head_ref }}-${{ github.workflow }} @@ -13,7 +12,7 @@ env: jobs: verify-3_widget_example: - if: ${{ github.event.label.name == 'test-guided-notebooks' || github.event.label.name == 'test-ui-notebooks'}} + if: contains(github.event.pull_request.labels.*.name, 'test-guided-notebooks') || contains(github.event.pull_request.labels.*.name, 'test-ui-notebooks') runs-on: ubuntu-20.04-4core steps: From 1c0590242c115482ef09a187defc445c9f9870f8 Mon Sep 17 00:00:00 2001 From: ChristianZaccaria Date: Wed, 23 Oct 2024 10:06:51 +0100 Subject: [PATCH 3/3] Add workflow types to trigger on label or push events --- .github/workflows/dependabot-labeler.yaml | 12 +++++++++++- .github/workflows/e2e_tests.yaml | 1 + .github/workflows/guided_notebook_tests.yaml | 1 + .github/workflows/ui_notebooks_test.yaml | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dependabot-labeler.yaml b/.github/workflows/dependabot-labeler.yaml index e5825f7d..69c94617 100644 --- a/.github/workflows/dependabot-labeler.yaml +++ b/.github/workflows/dependabot-labeler.yaml @@ -4,12 +4,22 @@ name: Dependabot Labeler on: pull_request: + types: [ labeled, synchronize, opened, reopened ] jobs: add-approve-lgtm-label: - if: github.actor == 'dependabot[bot]' && contains(github.event.pull_request.labels.*.name, 'dependabot') + if: ${{ github.actor == 'dependabot[bot]' && contains(github.event.pull_request.labels.*.name, 'dependabot') }} runs-on: ubuntu-latest + + # Permission required to edit a PR + permissions: + pull-requests: write + issues: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Add approve and lgtm labels to Dependabot PR run: | gh pr edit ${{ github.event.pull_request.number }} --add-label "lgtm" --add-label "approved" diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 976be87e..2caf8a01 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -2,6 +2,7 @@ name: e2e on: pull_request: + types: [ labeled, synchronize, opened, reopened ] branches: - main - 'release-*' diff --git a/.github/workflows/guided_notebook_tests.yaml b/.github/workflows/guided_notebook_tests.yaml index 7678ebd1..46979aa9 100644 --- a/.github/workflows/guided_notebook_tests.yaml +++ b/.github/workflows/guided_notebook_tests.yaml @@ -2,6 +2,7 @@ name: Guided notebooks tests on: pull_request: + types: [ labeled, synchronize, opened, reopened ] concurrency: group: ${{ github.head_ref }}-${{ github.workflow }} diff --git a/.github/workflows/ui_notebooks_test.yaml b/.github/workflows/ui_notebooks_test.yaml index 9252c34f..cac6641a 100644 --- a/.github/workflows/ui_notebooks_test.yaml +++ b/.github/workflows/ui_notebooks_test.yaml @@ -2,6 +2,7 @@ name: UI notebooks tests on: pull_request: + types: [ labeled, synchronize, opened, reopened ] concurrency: group: ${{ github.head_ref }}-${{ github.workflow }}