diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d562ffbda0f..41f8443260b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,6 +8,7 @@ on: types: - opened - synchronize + - reopened - labeled - unlabeled # push: @@ -113,9 +114,13 @@ jobs: uses: ./.github/workflows/run-exotics.yml secrets: inherit - all-jobs-are-green: # if this must be renamed, you need to update utils/scripts/get-workflow-summary.py + all-jobs-are-green-legacy: # if this must be renamed, you need to update utils/scripts/get-workflow-summary.py name: All jobs are green runs-on: ubuntu-latest + permissions: + checks: read + statuses: read + actions: read needs: - system_tests if: '!cancelled()' @@ -123,7 +128,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' - run: pip install requests - run: python utils/scripts/get-workflow-summary.py DataDog/system-tests ${{ github.run_id }} -o $GITHUB_STEP_SUMMARY env: @@ -132,6 +137,24 @@ jobs: if: needs.system_tests.result != 'success' run: exit 1 + all-jobs-are-green: # if this must be renamed, you need to update utils/scripts/get-workflow-summary.py + # name: All jobs are green # DO NOT SET A NAME + runs-on: ubuntu-latest + permissions: + checks: read + statuses: read + actions: read + needs: + - system_tests + if: '!cancelled()' + steps: + - uses: DataDog/ensure-ci-success@v0 + with: + polling-interval-seconds: '30' + max-retries: '60' + ignored-name-patterns: | + dd-gitlab/.* + update-CI-visibility: name: Update CI Visibility Dashboard runs-on: ubuntu-latest diff --git a/utils/scripts/get-workflow-summary.py b/utils/scripts/get-workflow-summary.py index b471c250c93..f6f9fc55a27 100644 --- a/utils/scripts/get-workflow-summary.py +++ b/utils/scripts/get-workflow-summary.py @@ -33,6 +33,8 @@ def get_jobs(session: requests.Session, repo_slug: str, run_id: int) -> list: jobs += items params["page"] += 1 + logging.info(f"Found {len(jobs)} jobs") + return jobs @@ -51,7 +53,7 @@ def main(repo_slug: str, run_id: int, output: str) -> None: failing_steps = defaultdict(list) for job in jobs: - if job["name"] in ("all-jobs-are-green", "fancy-report", "All jobs are green"): + if job["name"] in ("all-jobs-are-green", "fancy-report", "All jobs are green", "all-jobs-are-green-legacy"): logging.info(f"Skipping job {job['name']}") continue