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