From 3810b8d258225f9663be444c437a13931ceca1f5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 21:42:23 +0000 Subject: [PATCH 01/14] Initial plan From 1e04711a2111f8da84573946693e394d631cebdf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 22:08:39 +0000 Subject: [PATCH 02/14] =?UTF-8?q?Change=20test=20emoji=20from=20?= =?UTF-8?q?=F0=9F=A7=AA=20to=20=E2=9C=85=20in=20workflow=20summary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 96 +++++++++++++++++++++--------------- .github/workflows/codeql.yml | 50 ++++++++++--------- .github/workflows/tests.yml | 89 +++++++++++++++++++++++---------- 3 files changed, 149 insertions(+), 86 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2b71a75cd..c59f93536 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,17 +42,24 @@ jobs: - name: Summary - Repository checkout shell: pwsh run: | - echo "## ๐Ÿ“ฆ Build Cmder - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "### Repository Information" >> $env:GITHUB_STEP_SUMMARY - echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY - echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Actor | @${{ github.actor }} |" >> $env:GITHUB_STEP_SUMMARY - echo "| Workflow | \`${{ github.workflow }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + # Get Cmder version + . scripts/utils.ps1 + $cmderVersion = Get-VersionStr + + @" + ## ๐Ÿ“ฆ Build Cmder - Workflow Summary + + ### Repository Information + | Property | Value | + | --- | --- | + | Repository | ``${{ github.repository }}`` | + | Branch | ``${{ github.ref_name }}`` | + | Commit | ``${{ github.sha }}`` | + | Actor | @${{ github.actor }} | + | Workflow | ``${{ github.workflow }}`` | + | Cmder Version | **$cmderVersion** | + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2 @@ -66,10 +73,12 @@ jobs: if: success() shell: pwsh run: | - echo "### โœ… Build Status" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Cmder launcher successfully compiled." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ### โœ… Build Status + + Cmder launcher successfully compiled. + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Pack the built files shell: pwsh @@ -80,10 +89,13 @@ jobs: if: success() shell: pwsh run: | - echo "### ๐Ÿ“ฆ Artifacts Created" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "| Artifact | Size | Hash (SHA256) |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- | --- |" >> $env:GITHUB_STEP_SUMMARY + $summary = @" + ### ๐Ÿ“ฆ Artifacts Created + + | Artifact | Size | Hash (SHA256) | + | --- | --- | --- | + "@ + $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip") foreach ($artifact in $artifacts) { $path = "build/$artifact" @@ -91,10 +103,12 @@ jobs: $size = (Get-Item $path).Length / 1MB # Truncate hash to first 16 chars for summary readability (full hash in hashes.txt) $hash = (Get-FileHash $path -Algorithm SHA256).Hash.Substring(0, 16) - echo "| \`$artifact\` | $([math]::Round($size, 2)) MB | \`$hash...\` |" >> $env:GITHUB_STEP_SUMMARY + $summary += "`n| ``$artifact`` | $([math]::Round($size, 2)) MB | ``$hash...`` |" } } - echo "" >> $env:GITHUB_STEP_SUMMARY + $summary += "`n" + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Upload artifact (cmder.zip) uses: actions/upload-artifact@v5 @@ -125,14 +139,16 @@ jobs: if: success() shell: pwsh run: | - echo "### โ˜๏ธ Upload Status" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "All artifacts successfully uploaded to GitHub Actions:" >> $env:GITHUB_STEP_SUMMARY - echo "- โœ… \`cmder.zip\`" >> $env:GITHUB_STEP_SUMMARY - echo "- โœ… \`cmder.7z\`" >> $env:GITHUB_STEP_SUMMARY - echo "- โœ… \`cmder_mini.zip\`" >> $env:GITHUB_STEP_SUMMARY - echo "- โœ… \`hashes.txt\`" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ### โ˜๏ธ Upload Status + + All artifacts successfully uploaded to GitHub Actions: + - โœ… ``cmder.zip`` + - โœ… ``cmder.7z`` + - โœ… ``cmder_mini.zip`` + - โœ… ``hashes.txt`` + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Create Release uses: softprops/action-gh-release@v2 @@ -150,13 +166,15 @@ jobs: if: startsWith(github.ref, 'refs/tags/') shell: pwsh run: | - echo "### ๐Ÿš€ Release Information" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Draft release created for tag: **\`${{ github.ref_name }}\`**" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Release includes:" >> $env:GITHUB_STEP_SUMMARY - echo "- Full version (\`cmder.zip\`, \`cmder.7z\`)" >> $env:GITHUB_STEP_SUMMARY - echo "- Mini version (\`cmder_mini.zip\`)" >> $env:GITHUB_STEP_SUMMARY - echo "- File hashes (\`hashes.txt\`)" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "> โš ๏ธ Release is in **draft** mode. Please review and publish manually." >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐Ÿš€ Release Information + + Draft release created for tag: **``${{ github.ref_name }}``** + + Release includes: + - Full version (``cmder.zip``, ``cmder.7z``) + - Mini version (``cmder_mini.zip``) + - File hashes (``hashes.txt``) + + > โš ๏ธ Release is in **draft** mode. Please review and publish manually. + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 16ebd4072..30052d7eb 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -50,17 +50,19 @@ jobs: - name: Summary - CodeQL analysis started shell: pwsh run: | - echo "## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "### Analysis Configuration" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY - echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Language | \`${{ matrix.language }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary + + ### Analysis Configuration + + | Property | Value | + | --- | --- | + | Repository | ``${{ github.repository }}`` | + | Branch | ``${{ github.ref_name }}`` | + | Language | ``${{ matrix.language }}`` | + | Commit | ``${{ github.sha }}`` | + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL @@ -86,10 +88,12 @@ jobs: if: success() shell: pwsh run: | - echo "### โœ… Build Completed" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Cmder launcher built successfully for CodeQL analysis." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ### โœ… Build Completed + + Cmder launcher built successfully for CodeQL analysis. + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 @@ -100,10 +104,12 @@ jobs: if: success() shell: pwsh run: | - echo "### ๐Ÿ” CodeQL Analysis Results" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "โœ… CodeQL security analysis completed successfully." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "**Language analyzed:** \`${{ matrix.language }}\`" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "> Check the Security tab for detailed findings and recommendations." >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐Ÿ” CodeQL Analysis Results + + โœ… CodeQL security analysis completed successfully. + + **Language analyzed:** ``${{ matrix.language }}`` + + > Check the Security tab for detailed findings and recommendations. + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5110ab18d..ec295e328 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -43,16 +43,25 @@ jobs: - name: Summary - Test execution started shell: pwsh run: | - echo "## ๐Ÿงช Run Tests - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "### Test Environment" >> $env:GITHUB_STEP_SUMMARY - echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY - echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Runner OS | \`${{ runner.os }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + # Get Cmder version + . scripts/utils.ps1 + $cmderVersion = Get-VersionStr + + @" + ## โœ… Run Tests - Workflow Summary + + ### Test Environment + | Property | Value | + | --- | --- | + | Repository | ``${{ github.repository }}`` | + | Branch | ``${{ github.ref_name }}`` | + | Commit | ``${{ github.sha }}`` | + | Runner OS | ``${{ runner.os }}`` | + | Cmder Version | **$cmderVersion** | + | PowerShell Version | **$($PSVersionTable.PSVersion)** | + | Event | ``${{ github.event_name }}`` | + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Initialize vendors shell: pwsh @@ -63,21 +72,42 @@ jobs: if: success() shell: pwsh run: | - echo "### โš™๏ธ Vendor Initialization" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "โœ… Vendor dependencies initialized successfully." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + # Get vendor versions + $vendorInfo = @() + $vendorDirs = @("conemu-maximus5", "clink", "git-for-windows") + foreach ($dir in $vendorDirs) { + $versionFile = "vendor/$dir/.cmderver" + if (Test-Path $versionFile) { + $version = Get-Content $versionFile -Raw + $vendorInfo += "- **$dir**: $($version.Trim())" + } + } + + $summary = @" + ### โš™๏ธ Vendor Initialization + + โœ… Vendor dependencies initialized successfully. + + **Vendor Versions:** + $($vendorInfo -join "`n") + + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Summary - Test results table header if: success() shell: pwsh run: | - echo "### ๐Ÿ“‹ Test Results" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "| Test | Status |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐Ÿ“‹ Test Results + + | Test | Status | Duration | + | --- | --- | --- | + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing Clink Shell + id: test-clink run: | cmd /c vendor\init.bat /v /d /t @@ -85,8 +115,9 @@ jobs: if: success() shell: pwsh run: | - echo "| Clink Shell | โœ… Passed |" >> $env:GITHUB_STEP_SUMMARY + "| Clink Shell | โœ… Passed | Cmd shell initialization |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing PowerShell + id: test-powershell run: | PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "$env:CMDER_DEBUG='1'; . 'vendor\profile.ps1'" @@ -94,8 +125,9 @@ jobs: if: success() shell: pwsh run: | - echo "| PowerShell | โœ… Passed |" >> $env:GITHUB_STEP_SUMMARY + "| PowerShell | โœ… Passed | Profile script execution |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing Bash + id: test-bash run: | bash vendor/cmder.sh @@ -103,13 +135,20 @@ jobs: if: success() shell: pwsh run: | - echo "| Bash | โœ… Passed |" >> $env:GITHUB_STEP_SUMMARY + "| Bash | โœ… Passed | Bash environment initialization |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Summary - All tests completed if: success() shell: pwsh run: | - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "### โœ… All Tests Completed" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "All shell environments tested successfully!" >> $env:GITHUB_STEP_SUMMARY + @" + + ### โœ… All Tests Completed + + All shell environments tested successfully! + + **Test Coverage:** + - โœ… Clink shell environment (Windows cmd.exe with Clink) + - โœ… PowerShell environment (with Cmder profile) + - โœ… Bash environment (Git Bash integration) + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 From 0bc7fd3aaa01feb5bf62e4503ba18b9b644f7fad Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 22:30:03 +0000 Subject: [PATCH 03/14] Improve build workflow summary: add links, vendor packages, full hashes, and merge artifact sections Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 93 +++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c59f93536..df6579be8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,21 +45,38 @@ jobs: # Get Cmder version . scripts/utils.ps1 $cmderVersion = Get-VersionStr + $buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") @" ## ๐Ÿ“ฆ Build Cmder - Workflow Summary + Build started: $buildTime + ### Repository Information | Property | Value | | --- | --- | - | Repository | ``${{ github.repository }}`` | - | Branch | ``${{ github.ref_name }}`` | - | Commit | ``${{ github.sha }}`` | - | Actor | @${{ github.actor }} | + | Repository | [${{ github.repository }}](https://github.com/${{ github.repository }}) | + | Branch | [${{ github.ref_name }}](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}) | + | Commit | [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) | + | Actor | [@${{ github.actor }}](https://github.com/${{ github.actor }}) | | Workflow | ``${{ github.workflow }}`` | | Cmder Version | **$cmderVersion** | - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + --- + + ### Vendor Packages + | Package | Version | + | --- | --- | + "@ + + # Read vendor sources.json and add to summary + $vendorSources = Get-Content "vendor/sources.json" | ConvertFrom-Json + foreach ($vendor in $vendorSources) { + $summary += "`n| ``$($vendor.name)`` | $($vendor.version) |" + } + $summary += "`n" + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2 @@ -74,9 +91,12 @@ jobs: shell: pwsh run: | @" - ### โœ… Build Status - Cmder launcher successfully compiled. + --- + + ### Build Status + + โœ… Cmder launcher successfully compiled. "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 @@ -85,31 +105,6 @@ jobs: working-directory: scripts run: .\pack.ps1 -verbose - - name: Summary - Package artifacts - if: success() - shell: pwsh - run: | - $summary = @" - ### ๐Ÿ“ฆ Artifacts Created - - | Artifact | Size | Hash (SHA256) | - | --- | --- | --- | - "@ - - $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip") - foreach ($artifact in $artifacts) { - $path = "build/$artifact" - if (Test-Path $path) { - $size = (Get-Item $path).Length / 1MB - # Truncate hash to first 16 chars for summary readability (full hash in hashes.txt) - $hash = (Get-FileHash $path -Algorithm SHA256).Hash.Substring(0, 16) - $summary += "`n| ``$artifact`` | $([math]::Round($size, 2)) MB | ``$hash...`` |" - } - } - $summary += "`n" - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - - name: Upload artifact (cmder.zip) uses: actions/upload-artifact@v5 with: @@ -140,15 +135,28 @@ jobs: shell: pwsh run: | @" - ### โ˜๏ธ Upload Status - All artifacts successfully uploaded to GitHub Actions: - - โœ… ``cmder.zip`` - - โœ… ``cmder.7z`` - - โœ… ``cmder_mini.zip`` - - โœ… ``hashes.txt`` + --- - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + ### Artifacts + + | Artifact | Size | Hash (SHA256) | Download | + | --- | --- | --- | --- | + "@ + + $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip", "hashes.txt") + foreach ($artifact in $artifacts) { + $path = "build/$artifact" + if (Test-Path $path) { + $size = (Get-Item $path).Length / 1MB + $hash = (Get-FileHash $path -Algorithm SHA256).Hash + $downloadUrl = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" + $summary += "`n| ``$artifact`` | $([math]::Round($size, 2)) MB | ``$hash`` | [Download]($downloadUrl) |" + } + } + $summary += "`n" + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Create Release uses: softprops/action-gh-release@v2 @@ -167,9 +175,12 @@ jobs: shell: pwsh run: | @" - ### ๐Ÿš€ Release Information - Draft release created for tag: **``${{ github.ref_name }}``** + --- + + ### Release Information + + ๐Ÿš€ Draft release created for tag: **``${{ github.ref_name }}``** Release includes: - Full version (``cmder.zip``, ``cmder.7z``) From 2057ee58b03d87728594e7542f19326e2b2bc99a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 01:13:19 +0000 Subject: [PATCH 04/14] Fix incomplete summary by initializing $summary variable before appending Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df6579be8..9cf6788a9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,7 +47,7 @@ jobs: $cmderVersion = Get-VersionStr $buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") - @" + $summary = @" ## ๐Ÿ“ฆ Build Cmder - Workflow Summary Build started: $buildTime @@ -134,7 +134,7 @@ jobs: if: success() shell: pwsh run: | - @" + $summary = @" --- From bff3862ad4c2939c0821676683dc7dc6d0817642 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 01:41:42 +0000 Subject: [PATCH 05/14] =?UTF-8?q?Use=20=F0=9F=97=83=EF=B8=8F=20emoji=20for?= =?UTF-8?q?=20Vendor=20Packages=20and=20Artifacts=20sections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9cf6788a9..859002725 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,7 @@ jobs: --- - ### Vendor Packages + ### ๐Ÿ—ƒ๏ธ Vendor Packages | Package | Version | | --- | --- | "@ @@ -138,7 +138,7 @@ jobs: --- - ### Artifacts + ### ๐Ÿ—ƒ๏ธ Artifacts | Artifact | Size | Hash (SHA256) | Download | | --- | --- | --- | --- | From 838c1cfaa3cc0140f8bddd428a69225ac0d184c9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 01:56:14 +0000 Subject: [PATCH 06/14] Add backticks to clickable links for code formatting in Repository Information Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 859002725..7441c5b02 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,9 +55,9 @@ jobs: ### Repository Information | Property | Value | | --- | --- | - | Repository | [${{ github.repository }}](https://github.com/${{ github.repository }}) | - | Branch | [${{ github.ref_name }}](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}) | - | Commit | [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) | + | Repository | [``${{ github.repository }}``](https://github.com/${{ github.repository }}) | + | Branch | [``${{ github.ref_name }}``](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}) | + | Commit | [``${{ github.sha }}``](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) | | Actor | [@${{ github.actor }}](https://github.com/${{ github.actor }}) | | Workflow | ``${{ github.workflow }}`` | | Cmder Version | **$cmderVersion** | From 27c7a0cdc6c6b4224a2715236adde5a2dd1cc7d7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 01:59:35 +0000 Subject: [PATCH 07/14] Improve build summary: simplify message, reorder columns, add file type emojis Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7441c5b02..6583450f7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -96,7 +96,7 @@ jobs: ### Build Status - โœ… Cmder launcher successfully compiled. + โœ… Cmder built successfully. "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 @@ -140,7 +140,7 @@ jobs: ### ๐Ÿ—ƒ๏ธ Artifacts - | Artifact | Size | Hash (SHA256) | Download | + | Artifact | Size | Download | Hash (SHA256) | | --- | --- | --- | --- | "@ @@ -151,7 +151,17 @@ jobs: $size = (Get-Item $path).Length / 1MB $hash = (Get-FileHash $path -Algorithm SHA256).Hash $downloadUrl = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" - $summary += "`n| ``$artifact`` | $([math]::Round($size, 2)) MB | ``$hash`` | [Download]($downloadUrl) |" + + # Determine emoji based on file type + if ($artifact -match '\.txt$') { + $emoji = "๐Ÿ“„" + } elseif ($artifact -match '\.(zip|7z)$') { + $emoji = "๐Ÿ—„๏ธ" + } else { + $emoji = "๐Ÿ“ฆ" + } + + $summary += "`n| $emoji ``$artifact`` | $([math]::Round($size, 2)) MB | [๐Ÿ“ฅ Download]($downloadUrl) | ``$hash`` |" } } $summary += "`n" From a937901e822eb19c527f368f0e7056a1ab9172ad Mon Sep 17 00:00:00 2001 From: David Refoua Date: Mon, 15 Dec 2025 06:06:08 +0330 Subject: [PATCH 08/14] Change emoji for Vendor Packages section --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6583450f7..3bd7ff39f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,7 @@ jobs: --- - ### ๐Ÿ—ƒ๏ธ Vendor Packages + ### ๐Ÿ“ Vendor Packages | Package | Version | | --- | --- | "@ From 825df3aace44502da0bad0934c2a4f02411ce641 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 02:48:18 +0000 Subject: [PATCH 09/14] Fix branch link for PR merge refs to point to PR instead of invalid tree URL Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3bd7ff39f..29d09d1f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,6 +47,21 @@ jobs: $cmderVersion = Get-VersionStr $buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") + # Determine branch link (handle PR merge refs) + $branchName = "${{ github.ref_name }}" + $branchLink = "" + if ($branchName -match '^(\d+)/(merge|head)$') { + # This is a PR merge/head ref, link to the PR + $prNumber = $Matches[1] + $branchLink = "https://github.com/${{ github.repository }}/pull/$prNumber" + } elseif ("${{ github.event_name }}" -eq "pull_request") { + # This is a pull request event, link to the PR + $branchLink = "https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }}" + } else { + # Regular branch, link to the branch tree + $branchLink = "https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}" + } + $summary = @" ## ๐Ÿ“ฆ Build Cmder - Workflow Summary @@ -56,7 +71,7 @@ jobs: | Property | Value | | --- | --- | | Repository | [``${{ github.repository }}``](https://github.com/${{ github.repository }}) | - | Branch | [``${{ github.ref_name }}``](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}) | + | Branch | [``$branchName``]($branchLink) | | Commit | [``${{ github.sha }}``](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) | | Actor | [@${{ github.actor }}](https://github.com/${{ github.actor }}) | | Workflow | ``${{ github.workflow }}`` | From a52b0b9e1011779ab14c92b042d874b76e098186 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Mon, 15 Dec 2025 06:20:35 +0330 Subject: [PATCH 10/14] Update .github/workflows/tests.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/tests.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ec295e328..916b678af 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -72,9 +72,10 @@ jobs: if: success() shell: pwsh run: | - # Get vendor versions + # Get vendor versions from sources.json $vendorInfo = @() - $vendorDirs = @("conemu-maximus5", "clink", "git-for-windows") + $sources = Get-Content "sources.json" -Raw | ConvertFrom-Json + $vendorDirs = $sources.PSObject.Properties | ForEach-Object { $_.Name } foreach ($dir in $vendorDirs) { $versionFile = "vendor/$dir/.cmderver" if (Test-Path $versionFile) { From 641ce7b1e811063fda12a62a3d84de7063c314e9 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Mon, 15 Dec 2025 06:23:04 +0330 Subject: [PATCH 11/14] Update .github/workflows/build.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 29d09d1f6..caf5e0664 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -86,8 +86,12 @@ jobs: # Read vendor sources.json and add to summary $vendorSources = Get-Content "vendor/sources.json" | ConvertFrom-Json - foreach ($vendor in $vendorSources) { - $summary += "`n| ``$($vendor.name)`` | $($vendor.version) |" + if ($vendorSources.Count -eq 0) { + $summary += "`n| _No vendor packages found_ | |" + } else { + foreach ($vendor in $vendorSources) { + $summary += "`n| ``$($vendor.name)`` | $($vendor.version) |" + } } $summary += "`n" From 2780a433237172ff0ce3156b85f7f897b8119e77 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Mon, 15 Dec 2025 06:33:39 +0330 Subject: [PATCH 12/14] Update .github/workflows/tests.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/tests.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 916b678af..043b15860 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -90,7 +90,13 @@ jobs: โœ… Vendor dependencies initialized successfully. **Vendor Versions:** - $($vendorInfo -join "`n") + $( + if ($vendorInfo.Count -eq 0) { + "_No vendor version information available._" + } else { + $vendorInfo -join "`n" + } + ) "@ From 684185ca8a252887f51d883222a86993308799cd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Dec 2025 05:37:09 +0000 Subject: [PATCH 13/14] Fix vendor workflow Unicode escape error by converting echo to PowerShell here-strings Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/vendor.yml | 52 +++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml index 717e543db..6bdf80496 100644 --- a/.github/workflows/vendor.yml +++ b/.github/workflows/vendor.yml @@ -31,10 +31,12 @@ jobs: - name: Summary - Workflow started shell: pwsh run: | - echo "## ๐Ÿ“ฆ Update Vendor - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Checking for vendor dependency updates..." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ## ๐Ÿ“ฆ Update Vendor - Workflow Summary + + Checking for vendor dependency updates... + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - id: make-changes name: Checking for updates @@ -64,17 +66,21 @@ jobs: run: | $count = $env:COUNT_UPDATED if ($count -eq 0) { - echo "### โœ… No Updates Available" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "All vendor dependencies are up to date." >> $env:GITHUB_STEP_SUMMARY + @" + ### โœ… No Updates Available + + All vendor dependencies are up to date. + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 } else { $word = if ($count -eq 1) { 'dependency' } else { 'dependencies' } - echo "### ๐Ÿ”„ Updates Found" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "**$count** vendor $word updated:" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "$env:UPDATE_MESSAGE" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐Ÿ”„ Updates Found + + **$count** vendor $word updated: + + $env:UPDATE_MESSAGE + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 } - uses: peter-evans/create-pull-request@v7 @@ -94,12 +100,14 @@ jobs: if: env.COUNT_UPDATED > 0 shell: pwsh run: | - echo "### ๐ŸŽ‰ Pull Request Created" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "A pull request has been created to update the vendor dependencies." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "**Branch:** \`update-vendor\`" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "**Updated dependencies:** $env:LIST_UPDATED" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "> Please review and merge the pull request to apply the updates." >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐ŸŽ‰ Pull Request Created + + A pull request has been created to update the vendor dependencies. + + **Branch:** ``update-vendor`` + + **Updated dependencies:** $env:LIST_UPDATED + + > Please review and merge the pull request to apply the updates. + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 From dc93fa5d1bbe783d39147c387b68bfb78b2ff457 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Dec 2025 05:40:39 +0000 Subject: [PATCH 14/14] Add real artifact download URLs with retry logic and fallback to run page Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 46 +++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index caf5e0664..40ca5baf8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -152,6 +152,8 @@ jobs: - name: Summary - Artifacts uploaded if: success() shell: pwsh + env: + GH_TOKEN: ${{ github.token }} run: | $summary = @" @@ -163,13 +165,53 @@ jobs: | --- | --- | --- | --- | "@ + # Function to get artifact download URL with retry logic + function Get-ArtifactDownloadUrl { + param( + [string]$ArtifactName, + [int]$MaxRetries = 3, + [int]$DelaySeconds = 2 + ) + + for ($i = 0; $i -lt $MaxRetries; $i++) { + try { + # Use GitHub CLI to get artifact information + $artifactsJson = gh api "repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts" --jq ".artifacts[] | select(.name == `"$ArtifactName`")" + + if ($artifactsJson) { + $artifact = $artifactsJson | ConvertFrom-Json + if ($artifact.archive_download_url) { + return $artifact.archive_download_url + } + } + } catch { + Write-Host "Attempt $($i + 1) failed to get artifact URL for $ArtifactName : $_" + } + + if ($i -lt ($MaxRetries - 1)) { + Start-Sleep -Seconds $DelaySeconds + } + } + + return $null + } + $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip", "hashes.txt") foreach ($artifact in $artifacts) { $path = "build/$artifact" if (Test-Path $path) { $size = (Get-Item $path).Length / 1MB $hash = (Get-FileHash $path -Algorithm SHA256).Hash - $downloadUrl = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" + + # Try to get the actual artifact download URL + $downloadUrl = Get-ArtifactDownloadUrl -ArtifactName $artifact + $warning = "" + + if (-not $downloadUrl) { + # Fallback to workflow run page if artifact URL fetch fails + $downloadUrl = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" + $warning = " โš ๏ธ" + } # Determine emoji based on file type if ($artifact -match '\.txt$') { @@ -180,7 +222,7 @@ jobs: $emoji = "๐Ÿ“ฆ" } - $summary += "`n| $emoji ``$artifact`` | $([math]::Round($size, 2)) MB | [๐Ÿ“ฅ Download]($downloadUrl) | ``$hash`` |" + $summary += "`n| $emoji ``$artifact`` | $([math]::Round($size, 2)) MB | [๐Ÿ“ฅ Download$warning]($downloadUrl) | ``$hash`` |" } } $summary += "`n"