Skip to content

Commit

Permalink
Squashed commit of branch 'master' to branch 'feature-issue115'. #115
Browse files Browse the repository at this point in the history
  • Loading branch information
end2endzone committed Dec 30, 2023
1 parent 5ddaf71 commit 488d2c2
Show file tree
Hide file tree
Showing 196 changed files with 8,328 additions and 1,080 deletions.
191 changes: 191 additions & 0 deletions .github/workflows/build_windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
name: Windows

on: [push, pull_request]

env:
PlatformToolset: v142

# build platform, i.e. x86, x64, Any CPU. This setting is optional.
Platform: x64

# build Configuration, i.e. Debug, Release, etc.
Configuration: Release

jobs:
build:
# For a list of available runner types, refer to
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
runs-on: windows-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Configure GIT
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: |
git config --local core.autocrlf true
git config --local advice.detachedHead false
git submodule update --init --recursive
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: '3.x' # Version range or exact version of a Python version to use, using SemVer's version range syntax
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified

- name: Create new environment variables
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: |
python -c "import os; print('GIT_REPOSITORY=' + os.path.split(os.getenv('GITHUB_REPOSITORY'))[1]);" >> %GITHUB_ENV%
python -c "import os; print('GIT_BRANCH=' + os.path.split(os.getenv('GITHUB_REF'))[1]);" >> %GITHUB_ENV%
echo GITHUB_WORKFLOW=%GITHUB_WORKFLOW%>> %GITHUB_ENV%
- name: List environment variables for debugging
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: |
set
- name: List Windows services for debugging
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\list_services_status.bat

- name: List Windows registry keys for debugging
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\list_registry_keys.bat

- name: Deploy 'tests not available' badge before building
uses: exuanbo/actions-deploy-gist@v1
if: github.event_name != 'pull_request'
with:
token: ${{ secrets.BADGES }}
gist_id: 58cf6c72c08e706335337d5ef9ca48e8
gist_file_name: ${{env.GIT_REPOSITORY}}.${{env.GIT_BRANCH}}.${{env.GITHUB_WORKFLOW}}.json
file_path: ./ci/github/tests_not_available.badge.json

- name: Install Doxygen
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_doxygen.bat

- name: Install Google Test
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_googletest.bat

- name: Install TinyXML2
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_tinyxml2.bat

- name: Install RapidAssist
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_rapidassist.bat

- name: Install GLOG
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_glog.bat

- name: Install GRIP
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_grip.bat

- name: Install zlib
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_zlib.bat

- name: Install libmagic
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_libmagic.bat

- name: Build Shellanything
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_shellanything.bat

- name: Build plugin process
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_sa_plugin_process.bat

- name: Build plugin services
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_sa_plugin_services.bat

- name: Build plugin strings
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_sa_plugin_strings.bat

- name: Build plugin time
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_sa_plugin_time.bat

- name: Build plugin time
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\install_sa_plugin_demo.bat

- name: Run unit tests
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: call ci\github\test_script.bat

- name: Search unit test report file
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: |
for /f "tokens=* usebackq" %%f in (`dir/b/s build\bin\${{env.configuration}}\sa.tests.*.xml`) do (set UNITTEST_REPORT_PATH=%%f)
echo UNITTEST_REPORT_PATH=%UNITTEST_REPORT_PATH%
echo UNITTEST_REPORT_PATH=%UNITTEST_REPORT_PATH%>> %GITHUB_ENV%
- name: Create test badge
working-directory: ${{env.GITHUB_WORKSPACE}}
run: python ci\github\maketestbadge.py ${{env.UNITTEST_REPORT_PATH}}

- name: Deploy test badge to gist
uses: exuanbo/actions-deploy-gist@v1
if: github.event_name != 'pull_request'
with:
token: ${{ secrets.BADGES }}
gist_id: 58cf6c72c08e706335337d5ef9ca48e8
gist_file_name: ${{env.GIT_REPOSITORY}}.${{env.GIT_BRANCH}}.${{env.GITHUB_WORKFLOW}}.json
file_path: ./badge.json

- name: Archive test results
uses: actions/upload-artifact@v3
with:
name: unit-test-results
path: build\bin\${{env.Configuration}}\sa.tests.*.xml

- name: Archive test logs
uses: actions/upload-artifact@v3
with:
name: unit-test-logs
path: build\bin\${{env.Configuration}}\test_logs\*.log

- name: Get ShellAnything version
working-directory: ${{env.GITHUB_WORKSPACE}}
shell: cmd
run: |
set /p SHELLANYTHING_VERSION=<"build\version.txt"
echo SHELLANYTHING_VERSION=%SHELLANYTHING_VERSION%
echo SHELLANYTHING_VERSION=%SHELLANYTHING_VERSION%>> %GITHUB_ENV%
- name: Archive installation packages
uses: actions/upload-artifact@v3
with:
name: Installation packages.
path: build/ShellAnything-${{env.SHELLANYTHING_VERSION}}-*.*
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
/build
/install
/third_parties
/out
.vscode
.vs
/src/plugins/sa_plugin_time/build
/src/plugins/sa_plugin_time/install
/src/plugins/sa_plugin_demo/build
Expand All @@ -12,4 +14,4 @@
/src/plugins/sa_plugin_strings/install
/src/plugins/sa_plugin_process/install
/src/plugins/sa_plugin_process/build
/scripts/refresh.tmp.bat
/scripts/refresh.tmp.bat
21 changes: 21 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
Changes for 0.9.0

* Fixed issue #111: Move code from the shell extension to the core.
* Fixed issue #126: Remove single quote characters surrounding values in ActionExecute logs.
* Fixed issue #127: Question Prompt action does not accept answers longer than the visual textbox.
* Fixed issue #129: Utilize clipboard contents as well as set them.
* Fixed issue #130: Set a property value from the content of a file.
* Fixed issue #132: Delete deprecated NSIS installer references.
* Fixed issue #133: Support for Github's Actions for the project.
* Fixed issue #134: Set a property value from a registry key.
* Fixed issue #137: Library independent logging support.
* Fixed issue #139: Wait for an <exec> action to complete before executing the next action.
* Fixed issue #141: Separator visibility options.


Changes for 0.8.0

**NOTE:** The file name of Shellanything's shell extension is now `sa.shellextension.dll`. If you update from a previous version, make sure you unregister the previous shell extension (formally `shellext.dll`).
**NOTE:** Deprecated support for Windows 7. Version 0.7 is the last version to support Windows 7.


* Shellanything now features support for plugins (beta).
* Now using GLOG (Google Logging Library) as a shared DLL instead of a static library.
Expand All @@ -12,7 +29,11 @@ Changes for 0.8.0
* Fixed issue #101: Deprecate setup.exe installer in favor of the Windows Installer (*.msi).
* Fixed issue #113: Upgrading from v0.7.0 to 0.8.0 installs at the wrong location.
* Fixed issue #114: Implement sa_plugin_terminate() in the C API.
* Fixed issue #117: Menu entries with icons that uses an icon file (.ico) does not work when scale is greater than 100%.
* Fixed issue #118: Registry corruption while registering the extension.
* Fixed issue #119: Disable logs when the shell extension is loaded by registry editor (regedit.exe).
* Fixed issue #121: ShellAnything Errors out when opening a context on Google Docs/Sheets/etc.
* Fixed issue #124: Property 'application.path' resolves to sa.core.dll instead of sa.shellextension.dll.


Changes for 0.7.0
Expand Down
17 changes: 15 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ project(ShellAnything)
#Find optional packages.
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
find_package(WIX)
find_package(NSIS)
find_package(GRIP)

##############################################################################################################################################
Expand Down Expand Up @@ -105,7 +104,7 @@ MESSAGE( STATUS "CMAKE_SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR} )

# Product version according to Semantic Versioning v2.0.0 https://semver.org/
set(SHELLANYTHING_VERSION_MAJOR 0)
set(SHELLANYTHING_VERSION_MINOR 8)
set(SHELLANYTHING_VERSION_MINOR 9)
set(SHELLANYTHING_VERSION_PATCH 0)
set(SHELLANYTHING_VERSION ${SHELLANYTHING_VERSION_MAJOR}.${SHELLANYTHING_VERSION_MINOR}.${SHELLANYTHING_VERSION_PATCH})

Expand All @@ -124,6 +123,11 @@ set(SHELLANYTHING_CONFIG_HEADER ${CMAKE_BINARY_DIR}/include/shellanything/config
message("Generating ${SHELLANYTHING_CONFIG_HEADER}...")
configure_file( ${CMAKE_SOURCE_DIR}/src/config.h.in ${SHELLANYTHING_CONFIG_HEADER} )

# VERSION.TXT file
set(SHELLANYTHING_VERSION_TXT ${CMAKE_BINARY_DIR}/VERSION.TXT)
message("Generating ${SHELLANYTHING_VERSION_TXT}...")
configure_file( ${CMAKE_SOURCE_DIR}/src/VERSION.TXT.in ${SHELLANYTHING_VERSION_TXT} )

# Define installation directories
set(SHELLANYTHING_INSTALL_ROOT_DIR "/")
set(SHELLANYTHING_INSTALL_BIN_DIR "bin")
Expand Down Expand Up @@ -151,6 +155,14 @@ if(NOT CMAKE_DEBUG_POSTFIX)
set(CMAKE_DEBUG_POSTFIX "-d")
endif()

# Define EXEC_FILENAME_POSTFIX to accurately guess the end of filename of library/executable files
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(EXEC_FILENAME_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
else()
set(EXEC_FILENAME_POSTFIX "")
endif()
MESSAGE( STATUS "EXEC_FILENAME_POSTFIX: " ${EXEC_FILENAME_POSTFIX} )

# Prevents annoying warnings on MSVC
if (WIN32)
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
Expand Down Expand Up @@ -358,6 +370,7 @@ install(FILES ${CMAKE_SOURCE_DIR}/README.md
${CMAKE_BINARY_DIR}/${AUTHOR_FILENAME}
${CMAKE_BINARY_DIR}/${CHANGES_FILENAME}
${CMAKE_BINARY_DIR}/${LICENSE_FILENAME}
${SHELLANYTHING_VERSION_TXT}
DESTINATION ${SHELLANYTHING_INSTALL_ROOT_DIR})

if (SHELLANYTHING_BUILD_DOC AND DOXYGEN_FOUND)
Expand Down
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ Build:

| Service | Build | Tests |
|----|-------|-------|
| AppVeyor | [![Build status](https://img.shields.io/appveyor/ci/end2endzone/ShellAnything/master.svg?logo=appveyor)](https://ci.appveyor.com/project/end2endzone/shellanything) | [![Tests status](https://img.shields.io/appveyor/tests/end2endzone/shellanything/master.svg?logo=appveyor)](https://ci.appveyor.com/project/end2endzone/shellanything/branch/master/tests) |
| AppVeyor, Visual Studio 2019 | [![Build status](https://img.shields.io/appveyor/ci/end2endzone/ShellAnything/master.svg?logo=appveyor)](https://ci.appveyor.com/project/end2endzone/shellanything) | [![Tests status](https://img.shields.io/appveyor/tests/end2endzone/shellanything/master.svg?logo=appveyor)](https://ci.appveyor.com/project/end2endzone/shellanything/branch/master/tests) |
| Github Actions, Windows Server 2019 | [![Build on Windows](https://github.com/end2endzone/ShellAnything/actions/workflows/build_windows.yml/badge.svg)](https://github.com/end2endzone/ShellAnything/actions/workflows/build_windows.yml) | [![Tests on Windows](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/end2endzone/58cf6c72c08e706335337d5ef9ca48e8/raw/ShellAnything.master.Windows.json)](https://github.com/end2endzone/ShellAnything/actions/workflows/build_windows.yml) |


Statistics:
Expand Down Expand Up @@ -118,11 +119,13 @@ Please refer to file [INSTALL.md](INSTALL.md) for details on how installing/buil

ShellAnything has been tested with the following platform:

* Windows 7 (32 and 64 bit)
* Windows 8.1 (32 and 64 bit)
* Windows 10 (32 and 64 bit)

**NOTE:** Version 0.6.1 is the last version of ShellAnything that supports 32-bit Windows.

**NOTE:** Version 0.7 is the last version of ShellAnything that supports Windows 7.



# Versioning #
Expand Down
Loading

0 comments on commit 488d2c2

Please sign in to comment.