mirror of
https://github.com/cmderdev/cmder.git
synced 2025-12-15 10:18:53 +08:00
Compare commits
7 Commits
copilot/im
...
copilot/fi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27c7a0cdc6 | ||
|
|
838c1cfaa3 | ||
|
|
bff3862ad4 | ||
|
|
2057ee58b0 | ||
|
|
0bc7fd3aaa | ||
|
|
1e04711a21 | ||
|
|
3810b8d258 |
145
.github/workflows/build.yml
vendored
145
.github/workflows/build.yml
vendored
@@ -42,17 +42,41 @@ 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
|
||||
$buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
|
||||
|
||||
$summary = @"
|
||||
## 📦 Build Cmder - Workflow Summary
|
||||
|
||||
<small>Build started: $buildTime</small>
|
||||
|
||||
### 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 }}) |
|
||||
| Actor | [@${{ github.actor }}](https://github.com/${{ github.actor }}) |
|
||||
| Workflow | ``${{ github.workflow }}`` |
|
||||
| Cmder Version | **$cmderVersion** |
|
||||
|
||||
---
|
||||
|
||||
### 🗃️ 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
|
||||
@@ -66,36 +90,21 @@ 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 built successfully.
|
||||
|
||||
"@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
||||
|
||||
- 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:
|
||||
@@ -125,14 +134,39 @@ 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
|
||||
$summary = @"
|
||||
|
||||
---
|
||||
|
||||
### 🗃️ Artifacts
|
||||
|
||||
| Artifact | Size | Download | Hash (SHA256) |
|
||||
| --- | --- | --- | --- |
|
||||
"@
|
||||
|
||||
$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 }}"
|
||||
|
||||
# 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"
|
||||
|
||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
||||
|
||||
- name: Create Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
@@ -150,13 +184,18 @@ 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
|
||||
|
||||
50
.github/workflows/codeql.yml
vendored
50
.github/workflows/codeql.yml
vendored
@@ -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
|
||||
|
||||
89
.github/workflows/tests.yml
vendored
89
.github/workflows/tests.yml
vendored
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user