mirror of
https://github.com/cmderdev/cmder.git
synced 2026-03-03 17:36:08 +08:00
Compare commits
1 Commits
dax/fix-gi
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86d1cbcfa0 |
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@@ -1,12 +1,7 @@
|
|||||||
# To get started with Dependabot version updates, you'll need to specify which
|
|
||||||
# package ecosystems to update and where the package manifests are located.
|
|
||||||
# Please see the documentation for all configuration options:
|
|
||||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
||||||
|
|
||||||
version: 2
|
version: 2
|
||||||
updates:
|
updates:
|
||||||
# Enable version updates for GitHub Actions
|
# Enable version updates for GitHub Actions
|
||||||
- package-ecosystem: "github-actions" # See documentation for possible values
|
- package-ecosystem: "github-actions"
|
||||||
directory: "/" # Location of package manifests
|
directory: "/" # Location of package manifests
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
|
|||||||
218
.github/workflows/build.yml
vendored
218
.github/workflows/build.yml
vendored
@@ -42,61 +42,17 @@ jobs:
|
|||||||
- name: Summary - Repository checkout
|
- name: Summary - Repository checkout
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
# Get Cmder version
|
echo "## 📦 Build Cmder - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY
|
||||||
. scripts/utils.ps1
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$cmderVersion = Get-VersionStr
|
echo "### Repository Information" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
|
echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
# Determine branch link (handle PR merge refs)
|
echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$branchName = "${{ github.ref_name }}"
|
echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$branchLink = ""
|
echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
if ($branchName -match '^(\d+)/(merge|head)$') {
|
echo "| Actor | @${{ github.actor }} |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
# This is a PR merge/head ref, link to the PR
|
echo "| Workflow | \`${{ github.workflow }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$prNumber = $Matches[1]
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$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
|
|
||||||
|
|
||||||
<small>Build started: $buildTime</small>
|
|
||||||
|
|
||||||
### Repository Information
|
|
||||||
| Property | Value |
|
|
||||||
| --- | --- |
|
|
||||||
| Repository | [``${{ github.repository }}``](https://github.com/${{ github.repository }}) |
|
|
||||||
| 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 }}`` |
|
|
||||||
| Cmder Version | **$cmderVersion** |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 📁 Vendor Packages
|
|
||||||
| Package | Version |
|
|
||||||
| --- | --- |
|
|
||||||
"@
|
|
||||||
|
|
||||||
# Read vendor sources.json and add to summary
|
|
||||||
$vendorSources = Get-Content "vendor/sources.json" | ConvertFrom-Json
|
|
||||||
if ($vendorSources.Count -eq 0) {
|
|
||||||
$summary += "`n| _No vendor packages found_ | |"
|
|
||||||
} else {
|
|
||||||
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
|
- name: Add MSBuild to PATH
|
||||||
uses: microsoft/setup-msbuild@v2
|
uses: microsoft/setup-msbuild@v2
|
||||||
@@ -110,44 +66,57 @@ jobs:
|
|||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
$summary = @"
|
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.
|
|
||||||
|
|
||||||
"@
|
|
||||||
|
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|
||||||
- name: Pack the built files
|
- name: Pack the built files
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
working-directory: scripts
|
working-directory: scripts
|
||||||
run: .\pack.ps1 -verbose
|
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)
|
- name: Upload artifact (cmder.zip)
|
||||||
uses: actions/upload-artifact@v6
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
path: build/cmder.zip
|
path: build/cmder.zip
|
||||||
name: cmder.zip
|
name: cmder.zip
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
- name: Upload artifact (cmder.7z)
|
- name: Upload artifact (cmder.7z)
|
||||||
uses: actions/upload-artifact@v6
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
path: build/cmder.7z
|
path: build/cmder.7z
|
||||||
name: cmder.7z
|
name: cmder.7z
|
||||||
|
|
||||||
- name: Upload artifact (cmder_mini.zip)
|
- name: Upload artifact (cmder_mini.zip)
|
||||||
uses: actions/upload-artifact@v6
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
path: build/cmder_mini.zip
|
path: build/cmder_mini.zip
|
||||||
name: cmder_mini.zip
|
name: cmder_mini.zip
|
||||||
|
|
||||||
- name: Upload artifact (hashes.txt)
|
- name: Upload artifact (hashes.txt)
|
||||||
uses: actions/upload-artifact@v6
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
path: build/hashes.txt
|
path: build/hashes.txt
|
||||||
name: hashes.txt
|
name: hashes.txt
|
||||||
@@ -155,82 +124,15 @@ jobs:
|
|||||||
- name: Summary - Artifacts uploaded
|
- name: Summary - Artifacts uploaded
|
||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ github.token }}
|
|
||||||
run: |
|
run: |
|
||||||
$summary = @"
|
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
|
||||||
### 🗃️ Artifacts
|
echo '- ✅ `cmder.7z`' >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo '- ✅ `cmder_mini.zip`' >> $env:GITHUB_STEP_SUMMARY
|
||||||
| Artifact | Size | Download | Hash (SHA256) |
|
echo '- ✅ `hashes.txt`' >> $env:GITHUB_STEP_SUMMARY
|
||||||
| --- | --- | --- | --- |
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
"@
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# 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$') {
|
|
||||||
$emoji = "📄"
|
|
||||||
} elseif ($artifact -match '\.(zip|7z)$') {
|
|
||||||
$emoji = "🗄️"
|
|
||||||
} else {
|
|
||||||
$emoji = "📦"
|
|
||||||
}
|
|
||||||
|
|
||||||
$summary += "`n| $emoji ``$artifact`` | $([math]::Round($size, 2)) MB | [📥 Download$warning]($downloadUrl) | ``$hash`` |"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$summary += "`n"
|
|
||||||
|
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|
||||||
- name: Create Release
|
- name: Create Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
@@ -248,20 +150,14 @@ jobs:
|
|||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
$summary = @"
|
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.
|
|
||||||
"@
|
|
||||||
|
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|||||||
65
.github/workflows/codeql.yml
vendored
65
.github/workflows/codeql.yml
vendored
@@ -50,21 +50,20 @@ jobs:
|
|||||||
- name: Summary - CodeQL analysis started
|
- name: Summary - CodeQL analysis started
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
$summary = @"
|
$summary = @(
|
||||||
## 🔒 CodeQL Security Analysis - Workflow Summary
|
'## 🔒 CodeQL Security Analysis - Workflow Summary'
|
||||||
|
''
|
||||||
### Analysis Configuration
|
'### Analysis Configuration'
|
||||||
|
''
|
||||||
| Property | Value |
|
'| Property | Value |'
|
||||||
| --- | --- |
|
'| --- | --- |'
|
||||||
| Repository | ``${{ github.repository }}`` |
|
'| Repository | `${{ github.repository }}` |'
|
||||||
| Branch | ``${{ github.ref_name }}`` |
|
'| Branch | `${{ github.ref_name }}` |'
|
||||||
| Language | ``${{ matrix.language }}`` |
|
'| Language | `${{ matrix.language }}` |'
|
||||||
| Commit | ``${{ github.sha }}`` |
|
'| Commit | `${{ github.sha }}` |'
|
||||||
|
''
|
||||||
"@
|
)
|
||||||
|
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
@@ -90,14 +89,13 @@ jobs:
|
|||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
$summary = @"
|
$summary = @(
|
||||||
### ✅ Build Completed
|
'### ✅ Build Completed'
|
||||||
|
''
|
||||||
Cmder launcher built successfully for CodeQL analysis.
|
'Cmder launcher built successfully for CodeQL analysis.'
|
||||||
|
''
|
||||||
"@
|
)
|
||||||
|
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@v4
|
uses: github/codeql-action/analyze@v4
|
||||||
@@ -108,14 +106,13 @@ jobs:
|
|||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
$summary = @"
|
$summary = @(
|
||||||
### 🔍 CodeQL Analysis Results
|
'### 🔍 CodeQL Analysis Results'
|
||||||
|
''
|
||||||
✅ CodeQL security analysis completed successfully.
|
'✅ CodeQL security analysis completed successfully.'
|
||||||
|
''
|
||||||
**Language analyzed:** ``${{ matrix.language }}``
|
'**Language analyzed:** `${{ matrix.language }}`'
|
||||||
|
''
|
||||||
> Check the Security tab for detailed findings and recommendations.
|
'> Check the Security tab for detailed findings and recommendations.'
|
||||||
"@
|
)
|
||||||
|
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|||||||
104
.github/workflows/tests.yml
vendored
104
.github/workflows/tests.yml
vendored
@@ -39,33 +39,20 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v6
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Summary - Test execution started
|
- name: Summary - Test execution started
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
# Get Cmder version
|
echo "## 🧪 Run Tests - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY
|
||||||
. scripts/utils.ps1
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$cmderVersion = Get-VersionStr
|
echo "### Test Environment" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$summary = @"
|
echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
## ✅ Run Tests - Workflow Summary
|
echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
### Test Environment
|
echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
| Property | Value |
|
echo "| Runner OS | \`${{ runner.os }}\` |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
| --- | --- |
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
| 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 }}`` |
|
|
||||||
|
|
||||||
"@
|
|
||||||
|
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|
||||||
- name: Initialize vendors
|
- name: Initialize vendors
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
@@ -76,51 +63,21 @@ jobs:
|
|||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
# Get vendor versions from sources.json
|
echo "### ⚙️ Vendor Initialization" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$vendorInfo = @()
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
$sources = Get-Content "vendor\sources.json" -Raw | ConvertFrom-Json
|
echo "✅ Vendor dependencies initialized successfully." >> $env:GITHUB_STEP_SUMMARY
|
||||||
$vendorDirs = $sources.PSObject.Properties | ForEach-Object { $_.Name }
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
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:**
|
|
||||||
"@
|
|
||||||
|
|
||||||
$(
|
|
||||||
if ($vendorInfo.Count -eq 0) {
|
|
||||||
$summary += "_No vendor version information available._"
|
|
||||||
} else {
|
|
||||||
$summary += $vendorInfo -join '`n'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|
||||||
- name: Summary - Test results table header
|
- name: Summary - Test results table header
|
||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
$summary = @"
|
echo "### 📋 Test Results" >> $env:GITHUB_STEP_SUMMARY
|
||||||
### 📋 Test Results
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Test | Status |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
| Test | Status | Duration |
|
echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
| --- | --- | --- |
|
|
||||||
"@
|
|
||||||
|
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|
||||||
- name: Testing Clink Shell
|
- name: Testing Clink Shell
|
||||||
id: test-clink
|
|
||||||
run: |
|
run: |
|
||||||
cmd /c vendor\init.bat /v /d /t
|
cmd /c vendor\init.bat /v /d /t
|
||||||
|
|
||||||
@@ -128,9 +85,8 @@ jobs:
|
|||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
"| Clink Shell | ✅ Passed | Cmd shell initialization |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
echo "| Clink Shell | ✅ Passed |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
- name: Testing PowerShell
|
- name: Testing PowerShell
|
||||||
id: test-powershell
|
|
||||||
run: |
|
run: |
|
||||||
PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "$env:CMDER_DEBUG='1'; . 'vendor\profile.ps1'"
|
PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "$env:CMDER_DEBUG='1'; . 'vendor\profile.ps1'"
|
||||||
|
|
||||||
@@ -138,9 +94,8 @@ jobs:
|
|||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
"| PowerShell | ✅ Passed | Profile script execution |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
echo "| PowerShell | ✅ Passed |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
- name: Testing Bash
|
- name: Testing Bash
|
||||||
id: test-bash
|
|
||||||
run: |
|
run: |
|
||||||
bash vendor/cmder.sh
|
bash vendor/cmder.sh
|
||||||
|
|
||||||
@@ -148,22 +103,13 @@ jobs:
|
|||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
"| Bash | ✅ Passed | Bash environment initialization |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
echo "| Bash | ✅ Passed |" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
- name: Summary - All tests completed
|
- name: Summary - All tests completed
|
||||||
if: success()
|
if: success()
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
$summary = @"
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "### ✅ All Tests Completed" >> $env:GITHUB_STEP_SUMMARY
|
||||||
### ✅ All Tests Completed
|
echo "" >> $env:GITHUB_STEP_SUMMARY
|
||||||
|
echo "All shell environments tested successfully!" >> $env:GITHUB_STEP_SUMMARY
|
||||||
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)
|
|
||||||
"@
|
|
||||||
|
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|||||||
71
.github/workflows/vendor.yml
vendored
71
.github/workflows/vendor.yml
vendored
@@ -31,14 +31,13 @@ jobs:
|
|||||||
- name: Summary - Workflow started
|
- name: Summary - Workflow started
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
$summary = @"
|
$summary = @(
|
||||||
## 📦 Update Vendor - Workflow Summary
|
'## 📦 Update Vendor - Workflow Summary'
|
||||||
|
''
|
||||||
Checking for vendor dependency updates...
|
'Checking for vendor dependency updates...'
|
||||||
|
''
|
||||||
"@
|
)
|
||||||
|
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|
||||||
- id: make-changes
|
- id: make-changes
|
||||||
name: Checking for updates
|
name: Checking for updates
|
||||||
@@ -61,7 +60,6 @@ jobs:
|
|||||||
}
|
}
|
||||||
if ($count -eq 0) { return }
|
if ($count -eq 0) { return }
|
||||||
Set-GHVariable -Name LIST_UPDATED -Value $listUpdated.Trim(', ')
|
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
|
echo "UPDATE_MESSAGE<<<EOF`n$updateMessage`n<EOF" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
||||||
|
|
||||||
- name: Summary - Update check results
|
- name: Summary - Update check results
|
||||||
@@ -69,26 +67,26 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
$count = [int]$env:COUNT_UPDATED
|
$count = [int]$env:COUNT_UPDATED
|
||||||
if ($count -eq 0) {
|
if ($count -eq 0) {
|
||||||
$summary = @"
|
$summary = @(
|
||||||
### ✅ No Updates Available
|
'### ✅ No Updates Available'
|
||||||
|
''
|
||||||
All vendor dependencies are up to date.
|
'All vendor dependencies are up to date.'
|
||||||
"@
|
)
|
||||||
|
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY
|
||||||
} else {
|
} else {
|
||||||
$word = if ($count -eq 1) { 'dependency' } else { 'dependencies' }
|
$word = if ($count -eq 1) { 'dependency' } else { 'dependencies' }
|
||||||
$summary = @"
|
$summary = @(
|
||||||
### 🔄 Updates Found
|
'### 🔄 Updates Found'
|
||||||
|
''
|
||||||
**$count** vendor $word updated:
|
"**$count** vendor $word updated:"
|
||||||
|
''
|
||||||
$env:UPDATE_MESSAGE
|
$env:UPDATE_MESSAGE
|
||||||
|
''
|
||||||
"@
|
)
|
||||||
|
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY
|
||||||
}
|
}
|
||||||
|
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
- uses: peter-evans/create-pull-request@v8
|
||||||
|
|
||||||
- uses: peter-evans/create-pull-request@v7
|
|
||||||
if: env.COUNT_UPDATED > 0
|
if: env.COUNT_UPDATED > 0
|
||||||
with:
|
with:
|
||||||
title: 'Updates to `${{ env.COUNT_UPDATED }}` vendored dependencies'
|
title: 'Updates to `${{ env.COUNT_UPDATED }}` vendored dependencies'
|
||||||
@@ -105,16 +103,15 @@ jobs:
|
|||||||
if: env.COUNT_UPDATED > 0
|
if: env.COUNT_UPDATED > 0
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
$Summary = @"
|
$summary = @(
|
||||||
### 🎉 Pull Request Created
|
'### 🎉 Pull Request Created'
|
||||||
|
''
|
||||||
A pull request has been created to update the vendor dependencies.
|
'A pull request has been created to update the vendor dependencies.'
|
||||||
|
''
|
||||||
**Branch:** ``update-vendor``
|
'**Branch:** `update-vendor`'
|
||||||
|
''
|
||||||
**Updated dependencies:** $env:LIST_UPDATED
|
$env:LIST_UPDATED -and "**Updated dependencies:** $env:LIST_UPDATED" -or "**Updated dependencies:** "
|
||||||
|
''
|
||||||
> Please review and merge the pull request to apply the updates.
|
'> Please review and merge the pull request to apply the updates.'
|
||||||
"@
|
)
|
||||||
|
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY
|
||||||
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
|
|
||||||
|
|||||||
Reference in New Issue
Block a user