Compare commits

...
3 Commits
Author SHA1 Message Date
ge0rdiandGitHub 7baba47baf Add github build badge 2026-05-16 08:27:14 +02:00
ge0rdi f5fa8f0ea3 Add github build workflow 2026-05-16 08:20:47 +02:00
ge0rdi dfb307b3b7 Fix C++23 warnings
warning C5333: backslash and newline separated by space is treated as a line continuation in C++23 and later
2026-05-13 20:07:54 +02:00
5 changed files with 100 additions and 4 deletions
+94
View File
@@ -0,0 +1,94 @@
name: Build
permissions:
contents: read # Default to secure
on:
pull_request:
branches:
- master
paths:
- 'Src/**'
- 'Localization/**'
- '.github/workflows/build.yml'
workflow_dispatch: # allows manual trigger for main/master
jobs:
build:
runs-on: windows-2022
outputs:
new_version: ${{ steps.versioning.outputs.NEW_VERSION }}
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0 # Essential to see all tags
- name: Prepare version
id: versioning
shell: pwsh
run: |
# Fetch latest tag
$latestTag = git describe --tags --abbrev=0 2>$null
if ($latestTag -notmatch '^v\d+\.\d+\.\d+$') {
Write-Error "Error: Could not find a valid vX.Y.Z tag in history. Found: '$latestTag'"
exit 1
}
# Parse and Increment
$version = [version]$latestTag.Substring(1)
$baseVersion = "$($version.Major).$($version.Minor).$($version.Build + 1)"
# Handle PR Suffix
if ("${{ github.event_name }}" -eq "pull_request") {
$shortSha = "${{ github.event.pull_request.head.sha }}".Substring(0, 7)
$finalVersion = "$baseVersion-pr-$shortSha"
} else {
$finalVersion = $baseVersion
}
# Export
"NEW_VERSION=$finalVersion" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
Write-Host "Building version: $finalVersion"
- name: Build
shell: cmd
env:
APPVEYOR_BUILD_VERSION: ${{ steps.versioning.outputs.NEW_VERSION }}
run: Src\Setup\__MakeFinal.bat
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: OpenShell
path: |
Src/Setup/Final/
!Src/Setup/Final/OpenShellLoc.zip
release:
if: github.event_name == 'workflow_dispatch' # Only manual master builds
needs: build
runs-on: ubuntu-latest # Cheaper/faster than windows for just uploading
permissions:
contents: write # Elevate permissions ONLY for this job
steps:
- name: Download artifacts
uses: actions/download-artifact@v8
with:
name: OpenShell
- name: Create GitHub Release
uses: softprops/action-gh-release@v3
with:
tag_name: v${{ needs.build.outputs.new_version }}
name: ${{ needs.build.outputs.new_version }}
generate_release_notes: true
prerelease: true
files: |
OpenShellSetup*.exe
OpenShellSymbols_*.7z
Utility.exe
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+1 -1
View File
@@ -7,7 +7,7 @@ A collection of utilities bringing back classic features to Windows.
*Originally* **[Classic Shell](http://www.classicshell.net)** *by [Ivo Beltchev](https://sourceforge.net/u/ibeltchev/profile/)* *Originally* **[Classic Shell](http://www.classicshell.net)** *by [Ivo Beltchev](https://sourceforge.net/u/ibeltchev/profile/)*
[![GitHub Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu.svg?style=flat-square)](https://github.com/Open-Shell/Open-Shell-Menu/releases/latest)  [![GitHub Pre-Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu/all.svg?style=flat-square)](https://github.com/Open-Shell/Open-Shell-Menu/releases)  [![Build status](https://img.shields.io/appveyor/build/passionate-coder/Open-Shell-Menu?logo=appveyor&style=flat-square)](https://ci.appveyor.com/project/passionate-coder/open-shell-menu/branch/master)  [![GitQ](https://img.shields.io/badge/gitq-discussions-1577fa?style=flat-square)](https://gitq.com/passionate-coder/Classic-Start)  [![Gitter chat](https://img.shields.io/gitter/room/badges/shields.svg?color=lightseagreen&logo=gitter&style=flat-square)](https://gitter.im/open-shell/Lobby)  [![Discord](https://img.shields.io/discord/757701054782636082?color=mediumslateblue&label=Discord&logo=discord&logoColor=white&style=flat-square)](https://discord.gg/7H6arr5) [![GitHub Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu.svg?style=flat-square)](https://github.com/Open-Shell/Open-Shell-Menu/releases/latest)  [![GitHub Pre-Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu/all.svg?style=flat-square)](https://github.com/Open-Shell/Open-Shell-Menu/releases)  [![Build](https://github.com/Open-Shell/Open-Shell-Menu/actions/workflows/build.yml/badge.svg)](https://github.com/Open-Shell/Open-Shell-Menu/actions/workflows/build.yml)  [![Build status](https://img.shields.io/appveyor/build/passionate-coder/Open-Shell-Menu?logo=appveyor&style=flat-square)](https://ci.appveyor.com/project/passionate-coder/open-shell-menu/branch/master)  [![GitQ](https://img.shields.io/badge/gitq-discussions-1577fa?style=flat-square)](https://gitq.com/passionate-coder/Classic-Start)  [![Gitter chat](https://img.shields.io/gitter/room/badges/shields.svg?color=lightseagreen&logo=gitter&style=flat-square)](https://gitter.im/open-shell/Lobby)  [![Discord](https://img.shields.io/discord/757701054782636082?color=mediumslateblue&label=Discord&logo=discord&logoColor=white&style=flat-square)](https://discord.gg/7H6arr5)
[Open-Shell Homepage](https://open-shell.github.io/Open-Shell-Menu) [Open-Shell Homepage](https://open-shell.github.io/Open-Shell-Menu)
+2
View File
@@ -20,6 +20,8 @@ cd ..
cd Setup cd Setup
copy /B ..\..\build\bin\Release\Utility.exe .\Final > nul
if defined APPVEYOR ( if defined APPVEYOR (
appveyor PushArtifact ..\..\build\bin\Release\Utility.exe appveyor PushArtifact ..\..\build\bin\Release\Utility.exe
) )
+1 -1
View File
@@ -383,7 +383,7 @@ private:
static DWORD CALLBACK StaticRefreshInfoThread( void *param ); static DWORD CALLBACK StaticRefreshInfoThread( void *param );
static DWORD CALLBACK SaveCacheFileThread( void *param ); static DWORD CALLBACK SaveCacheFileThread( void *param );
// all paths are in caps and end with \ // all paths are in caps and end with backslash
CString m_RootStartMenu1; CString m_RootStartMenu1;
CString m_RootStartMenu2; CString m_RootStartMenu2;
CString m_RootStartMenu3; CString m_RootStartMenu3;
+2 -2
View File
@@ -55,8 +55,8 @@ END_COM_MAP()
STDMETHODIMP InvokeCommand( CMINVOKECOMMANDINFO *pInfo ); STDMETHODIMP InvokeCommand( CMINVOKECOMMANDINFO *pInfo );
STDMETHODIMP GetCommandString( UINT_PTR idCmd, UINT uFlags, UINT* pwReserved, LPSTR pszName, UINT cchMax ); STDMETHODIMP GetCommandString( UINT_PTR idCmd, UINT uFlags, UINT* pwReserved, LPSTR pszName, UINT cchMax );
wchar_t m_PinFolder1[_MAX_PATH]; // ending with \ wchar_t m_PinFolder1[_MAX_PATH]; // ending with backslash
wchar_t m_PinFolder2[_MAX_PATH]; // ending with \ wchar_t m_PinFolder2[_MAX_PATH]; // ending with backslash
wchar_t m_FileName[_MAX_PATH]; wchar_t m_FileName[_MAX_PATH];
LPITEMIDLIST m_FilePidl; LPITEMIDLIST m_FilePidl;
bool m_bInPinFolder1, m_bInPinFolder2; bool m_bInPinFolder1, m_bInPinFolder2;