diff --git a/.github/workflows/branches.yml b/.github/workflows/branches.yml index f1a4541..ff65db1 100644 --- a/.github/workflows/branches.yml +++ b/.github/workflows/branches.yml @@ -23,6 +23,21 @@ jobs: with: fetch-depth: 0 # fetch all history for all branches and tags + - name: Summary - Merge operation started + shell: bash + run: | + echo "## ๐Ÿ”€ Update Branches - Workflow Summary" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### Merge Operation" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "| Property | Value |" >> $GITHUB_STEP_SUMMARY + echo "| --- | --- |" >> $GITHUB_STEP_SUMMARY + echo "| Source Branch | \`master\` |" >> $GITHUB_STEP_SUMMARY + echo "| Target Branch | \`development\` |" >> $GITHUB_STEP_SUMMARY + echo "| Triggered by | @${{ github.actor }} |" >> $GITHUB_STEP_SUMMARY + echo "| Commit | \`${{ github.sha }}\` |" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + # Runs a single command using the runners shell - name: Merge master into development run: | @@ -31,3 +46,15 @@ jobs: git checkout development git merge --no-ff master git push origin development + + - name: Summary - Merge completed + if: success() + shell: bash + run: | + echo "### โœ… Merge Successful" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "The \`master\` branch has been successfully merged into \`development\`." >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "**Merge type:** No fast-forward merge" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "> The development branch is now synchronized with the latest changes from master." >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 461b28e..2b71a75 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,6 +39,21 @@ jobs: with: fetch-depth: 0 + - 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 + - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2 @@ -47,11 +62,40 @@ jobs: working-directory: scripts run: .\build.ps1 -Compile -verbose + - name: Summary - Build completed + 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 + - name: Pack the built files shell: pwsh working-directory: scripts run: .\pack.ps1 -verbose + - name: Summary - Package artifacts + 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 + $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) + echo "| \`$artifact\` | $([math]::Round($size, 2)) MB | \`$hash...\` |" >> $env:GITHUB_STEP_SUMMARY + } + } + echo "" >> $env:GITHUB_STEP_SUMMARY + - name: Upload artifact (cmder.zip) uses: actions/upload-artifact@v5 with: @@ -77,6 +121,19 @@ jobs: path: build/hashes.txt name: hashes.txt + - name: Summary - Artifacts uploaded + 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 + - name: Create Release uses: softprops/action-gh-release@v2 with: @@ -88,3 +145,18 @@ jobs: draft: true generate_release_notes: true if: startsWith(github.ref, 'refs/tags/') + + - name: Summary - Release created + 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 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d4ad6b4..16ebd40 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -47,6 +47,21 @@ jobs: - name: Checkout repository uses: actions/checkout@v6 + - 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 + # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v4 @@ -67,7 +82,28 @@ jobs: working-directory: scripts run: .\build.ps1 -Compile -verbose + - name: Summary - Build status + 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 + - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 with: category: "/language:${{matrix.language}}" + + - name: Summary - Analysis completed + 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 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c4625eb..5110ab1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -39,16 +39,77 @@ jobs: steps: - uses: actions/checkout@v6 + + - 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 + - name: Initialize vendors shell: pwsh working-directory: scripts run: .\build.ps1 -verbose + + - name: Summary - Vendor initialization + 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 + + - 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 + - name: Testing Clink Shell run: | cmd /c vendor\init.bat /v /d /t + + - name: Summary - Clink Shell test + if: success() + shell: pwsh + run: | + echo "| Clink Shell | โœ… Passed |" >> $env:GITHUB_STEP_SUMMARY - name: Testing PowerShell run: | PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "$env:CMDER_DEBUG='1'; . 'vendor\profile.ps1'" + + - name: Summary - PowerShell test + if: success() + shell: pwsh + run: | + echo "| PowerShell | โœ… Passed |" >> $env:GITHUB_STEP_SUMMARY - name: Testing Bash run: | bash vendor/cmder.sh + + - name: Summary - Bash test + if: success() + shell: pwsh + run: | + echo "| Bash | โœ… Passed |" >> $env:GITHUB_STEP_SUMMARY + + - 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 diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml index 5d66bb7..717e543 100644 --- a/.github/workflows/vendor.yml +++ b/.github/workflows/vendor.yml @@ -28,6 +28,14 @@ jobs: with: fetch-depth: 0 + - 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 + - id: make-changes name: Checking for updates env: @@ -51,6 +59,24 @@ jobs: Set-GHVariable -Name LIST_UPDATED -Value $listUpdated.Trim(', ') echo "UPDATE_MESSAGE<<> $env:GITHUB_STEP_SUMMARY + echo "" >> $env:GITHUB_STEP_SUMMARY + echo "All vendor dependencies are up to date." >> $env:GITHUB_STEP_SUMMARY + } 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 + } + - uses: peter-evans/create-pull-request@v7 if: env.COUNT_UPDATED > 0 with: @@ -63,3 +89,17 @@ jobs: commit-message: 'โฌ†๏ธ Update dependencies (${{ env.LIST_UPDATED }})' branch: update-vendor base: master + + - name: Summary - Pull request created + 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