Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 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
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.
41 changes: 41 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Test

on:
push:

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

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'}}

Comment on lines +38 to +39
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.
Comment on lines +34 to +39
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.
- name: Install dependencies
run: ${{matrix.os == 'windows-latest' && 'vcpkg\vcpkg install' || './vcpkg/vcpkg install'}} --triplet ${{matrix.triplet}} --x-install-root ${{ github.workspace }}${{ matrix.os == 'windows-latest' && '\vcpkg-cache' || '/vcpkg-cache' }}
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")
1 change: 1 addition & 0 deletions vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"name": "webframe",
"builtin-baseline": "e5a1490e1409d175932ef6014519e9ae149ddb7c",
"version": "0.1.0",
"description": "Portable C++ runtime for web applications",
"homepage": "https://github.com/maxtek6/webframe",
Expand Down
Loading