mirror of
https://github.com/cmderdev/cmder.git
synced 2026-02-25 06:26:08 +08:00
* master: Bump peter-evans/create-pull-request from 7 to 8 Bump actions/upload-artifact from 5 to 6 Update Dependabot configuration for GitHub Actions Add success conditionals to build and package summary steps Add missing success conditionals to CodeQL and branches workflows Add success conditionals to upload summary and separate test completion step Improve pluralization clarity, fix test table headers, and add hash comment Refactor artifact summary to use loop and improve pluralization Add success conditionals to test summary steps Add GITHUB_STEP_SUMMARY to all CI/CD workflows Initial plan ⬆️ Update dependencies (clink v1.9.5) Clean luacheck warning. Fix branch name in a newly inited repo. Update the git prompt to support repos with git reftables. Bump actions/checkout from 5 to 6 ⬆️ Update dependencies (git-for-windows v2.52.0.windows.1, clink v1.9.2, clink-completions v0.6.7)
206 lines
6.8 KiB
YAML
206 lines
6.8 KiB
YAML
#---------------------------------#
|
|
# general configuration #
|
|
#---------------------------------#
|
|
|
|
name: Build Cmder
|
|
|
|
# Controls when the action will run. Triggers the workflow on push or pull request events but only for the main branch
|
|
on:
|
|
push:
|
|
branches: [ "master" ]
|
|
tags:
|
|
- "v*"
|
|
pull_request:
|
|
branches: [ "master", "development" ]
|
|
|
|
#---------------------------------#
|
|
# environment configuration #
|
|
#---------------------------------#
|
|
|
|
env:
|
|
# Path to the root of the Cmder project.
|
|
CMDER_ROOT: ${{ github.workspace }}
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
|
jobs:
|
|
|
|
build:
|
|
name: Build Project
|
|
runs-on: windows-latest
|
|
permissions:
|
|
contents: write
|
|
discussions: write
|
|
steps:
|
|
- name: Check out repository code (Action from GitHub)
|
|
uses: actions/checkout@v6
|
|
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
|
|
|
|
- name: Build Cmder Launcher
|
|
shell: pwsh
|
|
working-directory: scripts
|
|
run: .\build.ps1 -Compile -verbose -terminal all
|
|
|
|
- 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 -terminal all
|
|
|
|
- name: Upload artifact (cmder_win_mini.zip)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
path: build/cmder_win_mini.zip
|
|
name: cmder_win_mini.zip
|
|
if-no-files-found: error
|
|
|
|
- name: Upload artifact (cmder_win.7z)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
path: build/cmder_win.7z
|
|
name: cmder_win.7z
|
|
if-no-files-found: error
|
|
|
|
- name: Upload artifact (cmder_win.zip)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
path: build/cmder_win.zip
|
|
name: cmder_win.zip
|
|
if-no-files-found: error
|
|
|
|
- name: Upload artifact (cmder_wt.zip)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
path: build/cmder_wt.zip
|
|
name: cmder_wt.zip
|
|
if-no-files-found: error
|
|
|
|
- name: Upload artifact (cmder_wt.7z)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
path: build/cmder_wt.7z
|
|
name: cmder_wt.7z
|
|
|
|
- name: Upload artifact (cmder_wt_mini.zip)
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
path: build/cmder_wt_mini.zip
|
|
name: cmder_wt_mini.zip
|
|
|
|
- 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@v6
|
|
with:
|
|
path: build/cmder.zip
|
|
name: cmder.zip
|
|
if-no-files-found: error
|
|
|
|
- name: Upload artifact (cmder.7z)
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
path: build/cmder.7z
|
|
name: cmder.7z
|
|
|
|
- name: Upload artifact (cmder_mini.zip)
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
path: build/cmder_mini.zip
|
|
name: cmder_mini.zip
|
|
|
|
- name: Upload artifact (hashes.txt)
|
|
uses: actions/upload-artifact@v6
|
|
with:
|
|
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:
|
|
files: |
|
|
build/cmder.zip
|
|
build/cmder_wt.zip
|
|
build/cmder.7z
|
|
build/cmder_wt.7z
|
|
build/cmder_mini.zip
|
|
build/cmder_wt_mini.zip
|
|
build/hashes.txt
|
|
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
|