Skip to content
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
af68626
Added vckg.yml and test.yml
johnpatek Feb 15, 2026
5b5a51d
testing new vcpkg CLI parameters
johnpatek Feb 15, 2026
6595ffc
testing new vcpkg path for windows
johnpatek Feb 15, 2026
9b0949d
trying new path format for windows vcpkg
johnpatek Feb 16, 2026
828da36
trying new path format for windows vcpkg
johnpatek Feb 16, 2026
5238ae4
trying powershell
johnpatek Feb 16, 2026
b1c22c8
trying to fix path issues
johnpatek Feb 16, 2026
848e102
trying to use simplified pipeline
johnpatek Feb 16, 2026
36347bb
test simplified pipeline
johnpatek Feb 16, 2026
1d41633
update cmake version tag
johnpatek Feb 16, 2026
3e18612
moving stuff around
johnpatek Feb 16, 2026
a741b34
trying to add vcpkg commit ID
johnpatek Feb 16, 2026
4a2a884
trying to add vcpkg commit ID
johnpatek Feb 16, 2026
4ff80c3
trying to add baseline
johnpatek Feb 16, 2026
767ce7a
trying to add cmake build step
johnpatek Feb 16, 2026
dad1d68
trying to get nuget to work
johnpatek Feb 16, 2026
c591876
trying to get nuget to work
johnpatek Feb 16, 2026
3ca92ba
trying new stage
johnpatek Feb 16, 2026
22a7e44
adding mono
johnpatek Feb 16, 2026
fec4637
trying local cache again
johnpatek Feb 16, 2026
caf23e0
testing cache restore
johnpatek Feb 16, 2026
85b23d0
trying new structure
johnpatek Feb 16, 2026
00c199e
trying new path settings
johnpatek Feb 16, 2026
8e8084f
trying without dependency
johnpatek Feb 16, 2026
0fd7eae
changing checkout version
johnpatek Feb 16, 2026
55e3cbf
trying new action paths
johnpatek Feb 16, 2026
cddea9a
trying python script
johnpatek Feb 16, 2026
d9a3445
trying to add shell through test.yml
johnpatek Feb 16, 2026
3af8e7a
trying to add shell through test.yml
johnpatek Feb 16, 2026
3904bba
fix os naming conflict
johnpatek Feb 16, 2026
7692f8d
removed unicode slop
johnpatek Feb 16, 2026
222c5a1
trying to use external action
johnpatek Feb 16, 2026
3a1f5a9
trying to force vcpkg install
johnpatek Feb 16, 2026
026d07b
save point
johnpatek Feb 17, 2026
58e86c5
test
johnpatek Feb 17, 2026
9d2f3ed
test
johnpatek Feb 17, 2026
96c2ad3
test
johnpatek Feb 17, 2026
2091117
test
johnpatek Feb 17, 2026
b1f60b9
added qtwebview
johnpatek Feb 17, 2026
be57df6
trying qt5
johnpatek Feb 17, 2026
a63a172
trying to install system packages
johnpatek Feb 17, 2026
65f2f18
trying subst command
johnpatek Feb 17, 2026
3a407ad
test
johnpatek Feb 17, 2026
39d0332
trying to add qtwebview again
johnpatek Feb 17, 2026
a38d1df
trying new cloning strategy
johnpatek Feb 17, 2026
e4e32b1
test
johnpatek Feb 17, 2026
04e080a
test
johnpatek Feb 17, 2026
5b9ef19
test
johnpatek Feb 17, 2026
a36cee9
trying to fix pch on mac
johnpatek Feb 18, 2026
f465122
removing osx from pipeline
johnpatek Feb 18, 2026
3259ab0
trying to free up some disk space
johnpatek Feb 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/cache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: cache
descritpion: Set up cache for vcpkg
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in field name: 'descritpion' should be 'description'.

Suggested change
descritpion: Set up cache for vcpkg
description: Set up cache for vcpkg

Copilot uses AI. Check for mistakes.
inputs:
triplet:
description: "The vcpkg triplet to cache"
required: true
runs:
using: "composite"
steps:
- name: Cache vcpkg
uses: actions/cache@v4
with:
path: vcpkg-cache
key: vcpkg-${{ inputs.triplet }}-${{ hashFiles('vcpkg.json') }}

25 changes: 25 additions & 0 deletions .github/vcpkg/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: vcpkg
descritpion: Bootstrap and install dependencies with vcpkg
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in field name: 'descritpion' should be 'description'.

Suggested change
descritpion: Bootstrap and install dependencies with vcpkg
description: Bootstrap and install dependencies with vcpkg

Copilot uses AI. Check for mistakes.
inputs:
os:
description: "The operating system to run the job on"
required: true
triplet:
description: "The vcpkg triplet to use"
required: true
shell:
description: "The shell to use for running commands (optional)"
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The shell input is marked as required, but the description says it's optional. This is inconsistent. If the shell is truly optional, set 'required: false' and provide a default value. If it's required, remove the "(optional)" text from the description.

Suggested change
description: "The shell to use for running commands (optional)"
description: "The shell to use for running commands"

Copilot uses AI. Check for mistakes.
required: true
runs:
using: "composite"
steps:
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Clone vcpkg
shell: ${{ inputs.shell }}
run: git clone https://github.com/microsoft/vcpkg
- name: Bootstrap vcpkg
shell: ${{ inputs.shell }}
run: python ./.github/vcpkg/setup.py --os ${{ inputs.os }} --triplet ${{ inputs.triplet }}

Comment on lines +24 to +25
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The vcpkg action clones the vcpkg repository but never uses the vcpkg-root argument from the setup.py script. Additionally, the action doesn't actually install any dependencies - it only clones and bootstraps vcpkg. The action should include a step to install dependencies using 'vcpkg install' with the appropriate triplet and manifest mode. Without this step, the dependencies defined in vcpkg.json will not be installed.

Suggested change
run: python ./.github/vcpkg/setup.py --os ${{ inputs.os }} --triplet ${{ inputs.triplet }}
run: python ./.github/vcpkg/setup.py --os ${{ inputs.os }} --triplet ${{ inputs.triplet }} --vcpkg-root ./vcpkg
- name: Install vcpkg dependencies
shell: ${{ inputs.shell }}
run: ./vcpkg/vcpkg install --triplet ${{ inputs.triplet }}

Copilot uses AI. Check for mistakes.
12 changes: 12 additions & 0 deletions .github/vcpkg/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env python3

import argparse
import subprocess
import sys

if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Setup vcpkg for the project")
parser.add_argument("--vcpkg-root", type=str, default="vcpkg", help="Path to the vcpkg directory")
args = parser.parse_args()


Comment on lines +6 to +12
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The setup.py script is incomplete and appears to be a stub. It only parses command-line arguments but doesn't implement any actual functionality to bootstrap vcpkg or install dependencies. The script is called from the vcpkg action (line 24 of .github/vcpkg/action.yml) with '--os' and '--triplet' arguments, but the argument parser only accepts '--vcpkg-root'. This mismatch will cause the workflow to fail. The script needs to be completed with the actual vcpkg setup logic.

Suggested change
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Setup vcpkg for the project")
parser.add_argument("--vcpkg-root", type=str, default="vcpkg", help="Path to the vcpkg directory")
args = parser.parse_args()
import os
from pathlib import Path
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Setup vcpkg for the project")
parser.add_argument(
"--vcpkg-root",
type=str,
default="vcpkg",
help="Path to the vcpkg directory",
)
parser.add_argument(
"--os",
dest="os",
choices=["windows", "linux", "macos"],
required=True,
help="Target operating system (determines which bootstrap script to run)",
)
parser.add_argument(
"--triplet",
type=str,
required=True,
help="vcpkg triplet to use when installing dependencies",
)
args = parser.parse_args()
vcpkg_root = Path(args.vcpkg_root).resolve()
if not vcpkg_root.exists():
print(f"[vcpkg-setup] vcpkg root directory does not exist: {vcpkg_root}", file=sys.stderr)
sys.exit(1)
if args.os == "windows":
bootstrap_script_name = "bootstrap-vcpkg.bat"
vcpkg_executable_name = "vcpkg.exe"
use_shell = True
else:
bootstrap_script_name = "bootstrap-vcpkg.sh"
vcpkg_executable_name = "vcpkg"
use_shell = False
bootstrap_script = vcpkg_root / bootstrap_script_name
if not bootstrap_script.exists():
print(f"[vcpkg-setup] Bootstrap script not found: {bootstrap_script}", file=sys.stderr)
sys.exit(1)
print(f"[vcpkg-setup] Bootstrapping vcpkg using {bootstrap_script} ...")
try:
# On Windows, the bootstrap script is a .bat file which typically requires shell=True.
result = subprocess.run(
[str(bootstrap_script)],
cwd=str(vcpkg_root),
shell=use_shell,
check=True,
)
except subprocess.CalledProcessError as exc:
print(f"[vcpkg-setup] vcpkg bootstrap failed with exit code {exc.returncode}", file=sys.stderr)
sys.exit(exc.returncode)
vcpkg_executable = vcpkg_root / vcpkg_executable_name
if not vcpkg_executable.exists():
print(f"[vcpkg-setup] vcpkg executable not found after bootstrap: {vcpkg_executable}", file=sys.stderr)
sys.exit(1)
install_cmd = [str(vcpkg_executable), "install", "--triplet", args.triplet]
print(f"[vcpkg-setup] Running: {' '.join(install_cmd)}")
result = subprocess.run(install_cmd, cwd=os.getcwd())
if result.returncode != 0:
print(f"[vcpkg-setup] vcpkg install failed with exit code {result.returncode}", file=sys.stderr)
sys.exit(result.returncode)
print("[vcpkg-setup] vcpkg setup completed successfully.")

Copilot uses AI. Check for mistakes.
39 changes: 39 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Test

on:
push:

jobs:
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
env:
VCPKG_BINARY_SOURCES: >-
clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 'env' key is incorrectly placed under 'strategy' at the same level as 'matrix' and 'fail-fast'. Environment variables should be defined at the job level (under 'build:') or at the step level, not under 'strategy'. This syntax error will cause the workflow to fail. Move the 'env' section to the job level, outside of the 'strategy' block.

Suggested change
strategy:
fail-fast: false
env:
VCPKG_BINARY_SOURCES: >-
clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite
env:
VCPKG_BINARY_SOURCES: >-
clear;files,${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }},readwrite
strategy:
fail-fast: false

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The VCPKG_BINARY_SOURCES environment variable is defined but will never be set due to the syntax error placing it under 'strategy'. Even if the syntax is corrected, the vcpkg cache directory path is constructed but the directory is never created before vcpkg attempts to use it. Add a step to create the vcpkg-cache directory before running vcpkg commands, for example: 'mkdir -p ${{ github.workspace }}/vcpkg-cache' on Linux/macOS or 'New-Item -ItemType Directory -Force -Path ${{ github.workspace }}\vcpkg-cache' on Windows.

Copilot uses AI. Check for mistakes.
matrix:
include:
- os: windows-latest
triplet: x64-windows
shell: powershell
- os: ubuntu-latest
triplet: x64-linux
shell: bash
- os: macos-latest
triplet: x64-osx
shell: bash

steps:
- uses: actions/checkout@v4

- name: Restore vcpkg cache
uses: ./.github/cache
with:
triplet: ${{ matrix.triplet }}
- name: Clone vcpkg
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing shell specification for the 'Clone vcpkg' step. Without an explicit 'shell' key, this step may use different default shells on different platforms, potentially causing inconsistent behavior. Add 'shell: ${{ matrix.shell }}' to ensure consistent shell usage across platforms, similar to the pattern used in the .github/vcpkg/action.yml.

Suggested change
- name: Clone vcpkg
- name: Clone vcpkg
shell: ${{ matrix.shell }}

Copilot uses AI. Check for mistakes.
run: git clone https://github.com/microsoft/vcpkg

- name: Bootstrap vcpkg
run: ${{matrix.os == 'windows-latest' && 'vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}}

Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The shell command in line 38 is missing spacing around the ternary operator and uses inconsistent path syntax. There should be spaces around '&&' and '||' operators for readability. Also, the command doesn't specify which shell to use, which could cause issues on different operating systems. Consider adding a 'shell' key to this step and using the matrix.shell value like: 'shell: ${{ matrix.shell }}'.

Suggested change
run: ${{matrix.os == 'windows-latest' && 'vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}}
run: ${{ matrix.os == 'windows-latest' && '.\vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh' }}
shell: ${{ matrix.shell }}

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow is incomplete and doesn't actually build the project. After bootstrapping vcpkg (line 38), there are no subsequent steps to install dependencies using vcpkg, configure the project with CMake, or build the project. This means the workflow will not achieve its stated purpose of building the project on multiple platforms. Additional steps are needed to complete the build process.

Suggested change
- name: Install dependencies with vcpkg
shell: ${{ matrix.shell }}
run: |
./vcpkg/vcpkg install --triplet ${{ matrix.triplet }}
- name: Configure CMake
shell: ${{ matrix.shell }}
run: |
cmake -S . -B build ^
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake ^
-DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }}
- name: Build
shell: ${{ matrix.shell }}
run: |
cmake --build build --config Release

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow references a custom action at './.github/cache' but this action is never actually used in the workflow. Additionally, the workflow manually clones vcpkg and bootstraps it (lines 34-38) instead of using the './.github/vcpkg' action that was created for this purpose. This creates inconsistency and suggests the workflow is incomplete. Either use the custom actions properly or remove them if they're not needed.

Suggested change
- name: Clone vcpkg
run: git clone https://github.com/microsoft/vcpkg
- name: Bootstrap vcpkg
run: ${{matrix.os == 'windows-latest' && 'vcpkg\bootstrap-vcpkg.bat' || './vcpkg/bootstrap-vcpkg.sh'}}
- name: Setup vcpkg
uses: ./.github/vcpkg
with:
triplet: ${{ matrix.triplet }}

Copilot uses AI. Check for mistakes.
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
cmake_minimum_required(VERSION 3.15)


project(webframe VERSION 0.1.0)
5 changes: 1 addition & 4 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# Tests for WebFrame

# Placeholder for tests
# You can add test executables here using add_executable() and add_test()

message(STATUS "Test directory - add tests here")
message(STATUS "Test directory placeholder")
2 changes: 1 addition & 1 deletion vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"name": "webframe",
"builtin-baseline": "e5a1490e1409d175932ef6014519e9ae149ddb7c",
"version": "0.1.0",
"description": "Portable C++ runtime for web applications",
"homepage": "https://github.com/maxtek6/webframe",
"license": "LGPL-3.0-or-later",
"dependencies": [
"qtwebview",
"libevent"
]
}