mirror of
https://github.com/cmderdev/cmder.git
synced 2025-12-15 10:18:53 +08:00
Compare commits
23 Commits
developmen
...
copilot/fi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27c7a0cdc6 | ||
|
|
838c1cfaa3 | ||
|
|
bff3862ad4 | ||
|
|
2057ee58b0 | ||
|
|
0bc7fd3aaa | ||
|
|
1e04711a21 | ||
|
|
3810b8d258 | ||
|
|
d05d03117a | ||
|
|
1509616205 | ||
|
|
6a698046a0 | ||
|
|
148f685bb3 | ||
|
|
73685145ea | ||
|
|
799f63de1f | ||
|
|
6da8e5849e | ||
|
|
25ac8f113e | ||
|
|
40ddf9a451 | ||
|
|
0db2dbf6f8 | ||
|
|
d285f63068 | ||
|
|
62cccaf284 | ||
|
|
e79f54e16e | ||
|
|
24427c1a41 | ||
|
|
a918a6aae1 | ||
|
|
d3ae747a6d |
29
.github/workflows/branches.yml
vendored
29
.github/workflows/branches.yml
vendored
@@ -19,10 +19,25 @@ jobs:
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
# Checks-out the repository under $GITHUB_WORKSPACE, so the job can access it
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
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
|
||||
|
||||
113
.github/workflows/build.yml
vendored
113
.github/workflows/build.yml
vendored
@@ -35,10 +35,49 @@ jobs:
|
||||
discussions: write
|
||||
steps:
|
||||
- name: Check out repository code (Action from GitHub)
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Summary - Repository checkout
|
||||
shell: pwsh
|
||||
run: |
|
||||
# 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
|
||||
|
||||
@@ -47,6 +86,20 @@ jobs:
|
||||
working-directory: scripts
|
||||
run: .\build.ps1 -Compile -verbose
|
||||
|
||||
- name: Summary - Build completed
|
||||
if: success()
|
||||
shell: pwsh
|
||||
run: |
|
||||
@"
|
||||
|
||||
---
|
||||
|
||||
### Build Status
|
||||
|
||||
✅ Cmder built successfully.
|
||||
|
||||
"@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
||||
|
||||
- name: Pack the built files
|
||||
shell: pwsh
|
||||
working-directory: scripts
|
||||
@@ -77,6 +130,44 @@ jobs:
|
||||
path: build/hashes.txt
|
||||
name: hashes.txt
|
||||
|
||||
- name: Summary - Artifacts uploaded
|
||||
if: success()
|
||||
shell: pwsh
|
||||
run: |
|
||||
$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
|
||||
with:
|
||||
@@ -88,3 +179,23 @@ 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: |
|
||||
@"
|
||||
|
||||
---
|
||||
|
||||
### 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
|
||||
|
||||
44
.github/workflows/codeql.yml
vendored
44
.github/workflows/codeql.yml
vendored
@@ -45,7 +45,24 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Summary - CodeQL analysis started
|
||||
shell: pwsh
|
||||
run: |
|
||||
@"
|
||||
## 🔒 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
|
||||
@@ -67,7 +84,32 @@ jobs:
|
||||
working-directory: scripts
|
||||
run: .\build.ps1 -Compile -verbose
|
||||
|
||||
- name: Summary - Build status
|
||||
if: success()
|
||||
shell: pwsh
|
||||
run: |
|
||||
@"
|
||||
### ✅ 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
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
||||
- name: Summary - Analysis completed
|
||||
if: success()
|
||||
shell: pwsh
|
||||
run: |
|
||||
@"
|
||||
### 🔍 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
|
||||
|
||||
102
.github/workflows/tests.yml
vendored
102
.github/workflows/tests.yml
vendored
@@ -38,17 +38,117 @@ jobs:
|
||||
continue-on-error: false
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Summary - Test execution started
|
||||
shell: pwsh
|
||||
run: |
|
||||
# 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
|
||||
working-directory: scripts
|
||||
run: .\build.ps1 -verbose
|
||||
|
||||
- name: Summary - Vendor initialization
|
||||
if: success()
|
||||
shell: pwsh
|
||||
run: |
|
||||
# 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: |
|
||||
@"
|
||||
### 📋 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
|
||||
|
||||
- name: Summary - Clink Shell test
|
||||
if: success()
|
||||
shell: pwsh
|
||||
run: |
|
||||
"| 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'"
|
||||
|
||||
- name: Summary - PowerShell test
|
||||
if: success()
|
||||
shell: pwsh
|
||||
run: |
|
||||
"| 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
|
||||
|
||||
- name: Summary - Bash test
|
||||
if: success()
|
||||
shell: pwsh
|
||||
run: |
|
||||
"| Bash | ✅ Passed | Bash environment initialization |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
||||
|
||||
- name: Summary - All tests completed
|
||||
if: success()
|
||||
shell: pwsh
|
||||
run: |
|
||||
@"
|
||||
|
||||
### ✅ 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
|
||||
|
||||
42
.github/workflows/vendor.yml
vendored
42
.github/workflows/vendor.yml
vendored
@@ -24,10 +24,18 @@ jobs:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
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<<<EOF`n$updateMessage`n<EOF" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
||||
|
||||
- name: Summary - Update check results
|
||||
shell: pwsh
|
||||
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
|
||||
} 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
|
||||
|
||||
12
vendor/sources.json
vendored
12
vendor/sources.json
vendored
@@ -1,13 +1,13 @@
|
||||
[
|
||||
{
|
||||
"name": "git-for-windows",
|
||||
"version": "2.51.2.windows.1",
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.51.2.windows.1/PortableGit-2.51.2-64-bit.7z.exe"
|
||||
"version": "2.52.0.windows.1",
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/PortableGit-2.52.0-64-bit.7z.exe"
|
||||
},
|
||||
{
|
||||
"name": "clink",
|
||||
"version": "1.8.8",
|
||||
"url": "https://github.com/chrisant996/clink/releases/download/v1.8.8/clink.1.8.8.a63364.zip"
|
||||
"version": "1.9.5",
|
||||
"url": "https://github.com/chrisant996/clink/releases/download/v1.9.5/clink.1.9.5.ee6b4f.zip"
|
||||
},
|
||||
{
|
||||
"name": "conemu-maximus5",
|
||||
@@ -21,7 +21,7 @@
|
||||
},
|
||||
{
|
||||
"name": "clink-completions",
|
||||
"version": "0.6.6",
|
||||
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.6.zip"
|
||||
"version": "0.6.7",
|
||||
"url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.7.zip"
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user