From 557dc66a3f3a66ffae17cec21cfd4bea71d8f2d8 Mon Sep 17 00:00:00 2001 From: Jensen Yap Date: Tue, 12 Aug 2025 18:10:58 +0900 Subject: [PATCH] Refactor SQL logic in GitHub Actions UDTF to streamline job failure analysis - Removed the intermediate `jobs_with_logs` CTE and directly utilized `failed_jobs` for improved clarity. - Added job logs retrieval to enhance failure analysis capabilities. - Updated SQL structure to ensure efficient data handling and maintainability. --- .../marketplace/github/actions_udtfs.yml.sql | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/macros/marketplace/github/actions_udtfs.yml.sql b/macros/marketplace/github/actions_udtfs.yml.sql index 512978c..98da147 100644 --- a/macros/marketplace/github/actions_udtfs.yml.sql +++ b/macros/marketplace/github/actions_udtfs.yml.sql @@ -240,23 +240,11 @@ conclusion AS job_conclusion, html_url AS job_url, workflow_name, - steps AS failed_steps + steps AS failed_steps, + {{ schema_name -}}.job_logs(owner, repo, job_id::TEXT) AS logs FROM TABLE({{ schema_name -}}.tf_workflow_run_jobs(owner, repo, run_id)) WHERE conclusion = 'failure' ), - jobs_with_logs AS ( - SELECT - run_id, - job_id, - job_name, - job_status, - job_conclusion, - job_url, - workflow_name, - failed_steps, - {{ schema_name -}}.job_logs(owner, repo, job_id::TEXT) AS logs - FROM failed_jobs - ), error_sections AS ( SELECT run_id, @@ -269,7 +257,7 @@ failed_steps, logs, ARRAY_AGG(section.value) AS failed_step_logs - FROM jobs_with_logs, + FROM failed_jobs, LATERAL FLATTEN(INPUT => SPLIT(logs, '##[group]')) section WHERE CONTAINS(section.value, '##[error]') GROUP BY run_id, job_id, job_name, job_status, job_conclusion, job_url, workflow_name, failed_steps, logs @@ -285,7 +273,7 @@ failed_steps, logs, COALESCE(failed_step_logs, ARRAY_CONSTRUCT()) AS failed_step_logs - FROM jobs_with_logs + FROM failed_jobs LEFT JOIN error_sections USING (run_id, job_id) - name: {{ schema_name -}}.tf_failure_analysis_with_ai