From 4bc6a2cf0d49cd5e1db7813903a296510188c039 Mon Sep 17 00:00:00 2001
From: ABUCKY0 <81783950+ABUCKY0@users.noreply.github.com>
Date: Wed, 19 Mar 2025 18:52:46 -0500
Subject: [PATCH 1/8] fix: :bug: Fix meson setup failure not exiting in setup
stage of script
If somehow the `meson setup` command were to fail, the prior verson of this script did not error at the `if [ $meson_exit_code -ne 0 ]; then` step.
---
build-tools/build.sh | 1 -
1 file changed, 1 deletion(-)
diff --git a/build-tools/build.sh b/build-tools/build.sh
index 32be56f..2378126 100644
--- a/build-tools/build.sh
+++ b/build-tools/build.sh
@@ -30,7 +30,6 @@ git config --global --add safe.directory /github/workspace
COMPILE_STD_OUTPUT=$(mktemp)
echo "::group::Build Project"
meson setup --cross-file scripts/v5.ini build | tee $COMPILE_STD_OUTPUT
-echo "PIPESTATUS: ${PIPESTATUS[@]}"
meson_exit_code=${PIPESTATUS[0]}
echo "Meson setup exit code: $meson_exit_code"
if [ $meson_exit_code -ne 0 ]; then
From fd2fbe3253f54d4f53dc81e1cdfc5ce466f7e8ea Mon Sep 17 00:00:00 2001
From: ABUCKY0 <81783950+ABUCKY0@users.noreply.github.com>
Date: Wed, 19 Mar 2025 19:01:37 -0500
Subject: [PATCH 2/8] fix: :bug: Improve error handling and output formatting
for Meson setup and compile failures
---
build-tools/build.sh | 81 ++++++++++++++++++++++++--------------------
1 file changed, 44 insertions(+), 37 deletions(-)
diff --git a/build-tools/build.sh b/build-tools/build.sh
index 2378126..33ef9cf 100644
--- a/build-tools/build.sh
+++ b/build-tools/build.sh
@@ -35,18 +35,19 @@ echo "Meson setup exit code: $meson_exit_code"
if [ $meson_exit_code -ne 0 ]; then
echo "Meson setup failed. Please check the logs for more information."
if [ "$INPUT_WRITE_JOB_SUMMARY" == "true" ]; then
- echo "# 🛑 Meson Setup Failed " > $GITHUB_STEP_SUMMARY
- echo "Meson setup failed. Please check the logs for more information. " >> $GITHUB_STEP_SUMMARY
- echo "***" >> $GITHUB_STEP_SUMMARY
- echo "Click to expand
" >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- echo "\`\`\` " >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- cat $COMPILE_STD_OUTPUT >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- echo "\`\`\` " >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
+ {
+ echo "Meson setup failed. Please check the logs for more information. "
+ echo "***"
+ echo "Click to expand
"
+ echo " "
+ echo "\`\`\` "
+ echo " "
+ cat $COMPILE_STD_OUTPUT
+ echo " "
+ echo "\`\`\` "
+ echo " "
+ echo " "
+ } >> $GITHUB_STEP_SUMMARY
fi
echo "::endgroup::"
exit 1
@@ -74,21 +75,25 @@ STD_EDITED_OUTPUT=$(mktemp)
sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2};?)?)?[mGK]//g" $STD_OUTPUT >$STD_EDITED_OUTPUT
if [ $meson_exit_code -ne 0 ]; then
+
if [ "$INPUT_WRITE_JOB_SUMMARY" == "true" ]; then
- echo "Meson compile failed. Please check the logs for more information."
- echo "# 🛑 Meson Compile Failed " > $GITHUB_STEP_SUMMARY
- echo "Meson compile failed in $elapsed_time seconds. Please check the logs for more information. " >> $GITHUB_STEP_SUMMARY
- echo "***" >> $GITHUB_STEP_SUMMARY
- echo "Click to expand
" >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- echo "\`\`\`\n " >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- cat $STD_EDITED_OUTPUT >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- echo "\`\`\`\n " >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
+ {
+ echo "# 🛑 Meson Compile Failed "
+ echo "Meson compile failed in $elapsed_time seconds. Please check the logs for more information. "
+ echo "***"
+ echo "Click to expand
"
+ echo " "
+ echo "\`\`\`\n "
+ echo " "
+ cat $STD_EDITED_OUTPUT
+ echo " "
+ echo "\`\`\`\n "
+ echo " "
+ echo " "
+ }>> $GITHUB_STEP_SUMMARY
fi
+ echo "::endgroup::"
+ echo "Meson compile failed. Please check the above group for more information."
exit 1
fi
echo "::endgroup::"
@@ -102,16 +107,18 @@ echo "The build took $elapsed_time seconds"
# job summary
if [ "$INPUT_WRITE_JOB_SUMMARY" == "true" ]; then
- echo "# ✅ Build Successful " > $GITHUB_STEP_SUMMARY
- echo "The build was successful and took $elapsed_time seconds. " >> $GITHUB_STEP_SUMMARY
- echo "***" >> $GITHUB_STEP_SUMMARY
- echo "Click to expand
" >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- echo "\`\`\` " >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- cat $STD_EDITED_OUTPUT >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- echo "\`\`\` " >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
- echo " " >> $GITHUB_STEP_SUMMARY
+ {
+ echo "# ✅ Build Successful "
+ echo "The build was successful and took $elapsed_time seconds. "
+ echo "***"
+ echo "Click to expand
"
+ echo " "
+ echo "\`\`\` "
+ echo " "
+ cat $STD_EDITED_OUTPUT
+ echo " "
+ echo "\`\`\` "
+ echo " "
+ echo " "
+ } >> $GITHUB_STEP_SUMMARY
fi
\ No newline at end of file
From 100757911a8b292d72e5befde2dd71635f62e7d9 Mon Sep 17 00:00:00 2001
From: ABUCKY0 <81783950+ABUCKY0@users.noreply.github.com>
Date: Wed, 19 Mar 2025 19:05:34 -0500
Subject: [PATCH 3/8] test: :white_check_mark: Tests to see if the setup
command fails in the build script
checks to see if the setup command fails by not cloning the test repository (currently the kernel)
---
.github/workflows/build-image.yml | 7 +++++++
.github/workflows/test.yml | 25 ++++++++++++++++++++++---
2 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml
index 4993d52..7a10896 100644
--- a/.github/workflows/build-image.yml
+++ b/.github/workflows/build-image.yml
@@ -113,6 +113,13 @@ jobs:
repository: ["ZestCommunity/ZestCode"]
ref: ["main"]
caller_token: ["${{ github.token }}"]
+ clone_repo: [true, false] # false tests setup command
+ expect_error: [false, true]
+ exclude:
+ # We only really need to test if the action fails the setup command in one case
+ - write_job_summary: false
+ clone_repo: false
+
with:
write_job_summary: ${{ matrix.write_job_summary }}
repository: ${{ matrix.repository }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 331feef..52be1b8 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -18,19 +18,28 @@ on:
description: Whether to write the artifact URL to the job summary
default: true
type: boolean
+ clone_repo:
+ description: Whether to clone the repo
+ default: true
+ type: boolean
+ expect_error:
+ description: Whether to expect an error
+ default: false
+ type: boolean
jobs:
test:
name: "Testing Container: Write Job Summary?${{ inputs.write_job_summary }}"
runs-on: ubuntu-latest
steps:
- - name: Checkout
+ - name: Checkout Repository to Test
uses: actions/checkout@v4
+ if: ${{ inputs.clone_repo }}
with:
repository: ${{ inputs.repository }}
ref: ${{ inputs.ref }}
- - name: Checkout
+ - name: Checkout Action
uses: actions/checkout@v4
with:
path: ./action/
@@ -55,6 +64,16 @@ jobs:
- name: Test Action
id: test-action
uses: ./action/
- continue-on-error: False
+ continue-on-error: ${{ inputs.expect_error }}
with:
write_job_summary: ${{ inputs.write_job_summary }}
+
+ - name: Check for Failure If Expected
+ if: ${{ inputs.expect_error }}
+ run: |
+ if [ "${{ (steps.test-action.outcome == 'success') }}" == "true" ]; then
+ echo "Test Action step succeeded when it was expected to fail. Failing job.."
+ exit 1
+ else
+ echo "Test Action step failed as expected."
+ fi
From e63b788bfa496b04c5b364c600a9594cfa9f211d Mon Sep 17 00:00:00 2001
From: ABUCKY0 <81783950+ABUCKY0@users.noreply.github.com>
Date: Wed, 19 Mar 2025 19:12:00 -0500
Subject: [PATCH 4/8] fix: :bug: Update test matrix to fix workflow invalid
error and include the specific case we want instead of excluding extra ones
we don't want
---
.github/workflows/build-image.yml | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml
index 7a10896..c00ce7d 100644
--- a/.github/workflows/build-image.yml
+++ b/.github/workflows/build-image.yml
@@ -114,17 +114,19 @@ jobs:
ref: ["main"]
caller_token: ["${{ github.token }}"]
clone_repo: [true, false] # false tests setup command
- expect_error: [false, true]
- exclude:
- # We only really need to test if the action fails the setup command in one case
- - write_job_summary: false
- clone_repo: false
+ expect_error: [false]
+ include:
+ # Specific case of setup command failure
+ - write_job_summary: true
+ clone_repo: true
with:
write_job_summary: ${{ matrix.write_job_summary }}
repository: ${{ matrix.repository }}
ref: ${{ matrix.ref }}
caller_token: ${{ matrix.caller_token }}
+ clone_repo: ${{ matrix.clone_repo }}
+ expect_error: ${{ matrix.expect_error }}
Upload_Image:
name: Upload Docker Image to ghcr.io Registry
From 8d52552ec36f0ac45ba97cbfaedd1f2d2cf4dc5a Mon Sep 17 00:00:00 2001
From: ABUCKY0 <81783950+ABUCKY0@users.noreply.github.com>
Date: Wed, 19 Mar 2025 19:17:38 -0500
Subject: [PATCH 5/8] fix: :bug: Add expect_error parameter to setup error test
job
---
.github/workflows/build-image.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml
index c00ce7d..c768f93 100644
--- a/.github/workflows/build-image.yml
+++ b/.github/workflows/build-image.yml
@@ -119,6 +119,7 @@ jobs:
# Specific case of setup command failure
- write_job_summary: true
clone_repo: true
+ expect_error: true
with:
write_job_summary: ${{ matrix.write_job_summary }}
From d86e1d7e20597be3e5e79a92e1e7235ff4e41e82 Mon Sep 17 00:00:00 2001
From: ABUCKY0 <81783950+ABUCKY0@users.noreply.github.com>
Date: Wed, 19 Mar 2025 19:25:30 -0500
Subject: [PATCH 6/8] fix: :bug: Add additional input logging for better
debugging in test workflow
---
.github/workflows/test.yml | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 52be1b8..d63c274 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -32,6 +32,15 @@ jobs:
name: "Testing Container: Write Job Summary?${{ inputs.write_job_summary }}"
runs-on: ubuntu-latest
steps:
+ - name: Print Inputs
+ run: |
+ echo "Inputs(repository): ${{ inputs.repository }}"
+ echo "Inputs(ref): ${{ inputs.ref }}"
+ echo "Inputs(caller_token): ${{ inputs.caller_token }}"
+ echo "Inputs(write_job_summary): ${{ inputs.write_job_summary }}"
+ echo "Inputs(clone_repo): ${{ inputs.clone_repo }}"
+ echo "Inputs(expect_error): ${{ inputs.expect_error }}"
+
- name: Checkout Repository to Test
uses: actions/checkout@v4
if: ${{ inputs.clone_repo }}
From 6b04da7bf1bb444920f5a2dd13dcf23d2b3e25d0 Mon Sep 17 00:00:00 2001
From: ABUCKY0 <81783950+ABUCKY0@users.noreply.github.com>
Date: Wed, 19 Mar 2025 19:28:50 -0500
Subject: [PATCH 7/8] fix: :bug: Change matrix strategy inputs to properly
exclude expect_error=false while clone_repo=false
---
.github/workflows/build-image.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml
index c768f93..bfc86a5 100644
--- a/.github/workflows/build-image.yml
+++ b/.github/workflows/build-image.yml
@@ -113,12 +113,12 @@ jobs:
repository: ["ZestCommunity/ZestCode"]
ref: ["main"]
caller_token: ["${{ github.token }}"]
- clone_repo: [true, false] # false tests setup command
+ clone_repo: [true]
expect_error: [false]
include:
# Specific case of setup command failure
- write_job_summary: true
- clone_repo: true
+ clone_repo: false
expect_error: true
with:
From 959b7e21bd3c146a42532550841aa680b6346545 Mon Sep 17 00:00:00 2001
From: ABUCKY0 <81783950+ABUCKY0@users.noreply.github.com>
Date: Wed, 19 Mar 2025 19:38:46 -0500
Subject: [PATCH 8/8] =?UTF-8?q?revert:=20:rewind:=20Revert=20`fix:=20?=
=?UTF-8?q?=F0=9F=90=9B=20Improve=20error=20handling=20and=20output=20form?=
=?UTF-8?q?atting=20for=20Meson=20setup=20and=20compile=20failures`=20sinc?=
=?UTF-8?q?e=20it's=20unrelated=20to=20this=20PR?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
build-tools/build.sh | 81 ++++++++++++++++++++------------------------
1 file changed, 37 insertions(+), 44 deletions(-)
diff --git a/build-tools/build.sh b/build-tools/build.sh
index 33ef9cf..2378126 100644
--- a/build-tools/build.sh
+++ b/build-tools/build.sh
@@ -35,19 +35,18 @@ echo "Meson setup exit code: $meson_exit_code"
if [ $meson_exit_code -ne 0 ]; then
echo "Meson setup failed. Please check the logs for more information."
if [ "$INPUT_WRITE_JOB_SUMMARY" == "true" ]; then
- {
- echo "Meson setup failed. Please check the logs for more information. "
- echo "***"
- echo "Click to expand
"
- echo " "
- echo "\`\`\` "
- echo " "
- cat $COMPILE_STD_OUTPUT
- echo " "
- echo "\`\`\` "
- echo " "
- echo " "
- } >> $GITHUB_STEP_SUMMARY
+ echo "# 🛑 Meson Setup Failed " > $GITHUB_STEP_SUMMARY
+ echo "Meson setup failed. Please check the logs for more information. " >> $GITHUB_STEP_SUMMARY
+ echo "***" >> $GITHUB_STEP_SUMMARY
+ echo "Click to expand
" >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ echo "\`\`\` " >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ cat $COMPILE_STD_OUTPUT >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ echo "\`\`\` " >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
fi
echo "::endgroup::"
exit 1
@@ -75,25 +74,21 @@ STD_EDITED_OUTPUT=$(mktemp)
sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2};?)?)?[mGK]//g" $STD_OUTPUT >$STD_EDITED_OUTPUT
if [ $meson_exit_code -ne 0 ]; then
-
if [ "$INPUT_WRITE_JOB_SUMMARY" == "true" ]; then
- {
- echo "# 🛑 Meson Compile Failed "
- echo "Meson compile failed in $elapsed_time seconds. Please check the logs for more information. "
- echo "***"
- echo "Click to expand
"
- echo " "
- echo "\`\`\`\n "
- echo " "
- cat $STD_EDITED_OUTPUT
- echo " "
- echo "\`\`\`\n "
- echo " "
- echo " "
- }>> $GITHUB_STEP_SUMMARY
+ echo "Meson compile failed. Please check the logs for more information."
+ echo "# 🛑 Meson Compile Failed " > $GITHUB_STEP_SUMMARY
+ echo "Meson compile failed in $elapsed_time seconds. Please check the logs for more information. " >> $GITHUB_STEP_SUMMARY
+ echo "***" >> $GITHUB_STEP_SUMMARY
+ echo "Click to expand
" >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ echo "\`\`\`\n " >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ cat $STD_EDITED_OUTPUT >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ echo "\`\`\`\n " >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
fi
- echo "::endgroup::"
- echo "Meson compile failed. Please check the above group for more information."
exit 1
fi
echo "::endgroup::"
@@ -107,18 +102,16 @@ echo "The build took $elapsed_time seconds"
# job summary
if [ "$INPUT_WRITE_JOB_SUMMARY" == "true" ]; then
- {
- echo "# ✅ Build Successful "
- echo "The build was successful and took $elapsed_time seconds. "
- echo "***"
- echo "Click to expand
"
- echo " "
- echo "\`\`\` "
- echo " "
- cat $STD_EDITED_OUTPUT
- echo " "
- echo "\`\`\` "
- echo " "
- echo " "
- } >> $GITHUB_STEP_SUMMARY
+ echo "# ✅ Build Successful " > $GITHUB_STEP_SUMMARY
+ echo "The build was successful and took $elapsed_time seconds. " >> $GITHUB_STEP_SUMMARY
+ echo "***" >> $GITHUB_STEP_SUMMARY
+ echo "Click to expand
" >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ echo "\`\`\` " >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ cat $STD_EDITED_OUTPUT >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ echo "\`\`\` " >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
+ echo " " >> $GITHUB_STEP_SUMMARY
fi
\ No newline at end of file