Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
b3a5d79
Temp test https://github.com/NREL/cbci_jenkins_libs/pull/159
jmarrec Jun 11, 2025
cd9512e
add "/opt/rbenv/versions/3.2.2/bin/" to potential ruby locations
jmarrec Jun 11, 2025
0342ca4
Revised the labels used to match the latest version of the 2204 Linux
anchapin Nov 14, 2025
9eee394
Simplify incremental-build workflow to trigger only on PRs with 'Pull…
anchapin Nov 14, 2025
1ab42fa
Update EnergyPlus release from RC3 to final v25.2.0
anchapin Nov 14, 2025
83a4ef4
Adjusted the 2204 lable
anchapin Nov 14, 2025
8a7df13
Remove timestep/daily meters, which can create a lot of output and im…
shorowit Nov 18, 2025
9536c4a
Update container images for CentOS 9 and Ubuntu platforms to use main…
anchapin Nov 20, 2025
6c8c6ec
Fix working directory paths in full-build workflow and update Windows…
anchapin Nov 20, 2025
dc74887
Update container images for ARM64 platforms to use main tags
anchapin Nov 20, 2025
67c6251
Fix working directory paths in Conan install steps for consistency
anchapin Nov 20, 2025
4628977
Reduce max_jobs and CTEST_PARALLEL_LEVEL to 2 for all platforms in fu…
anchapin Nov 20, 2025
cbd13ff
Upgrade pip before installing Conan and set up Python environment
anchapin Nov 20, 2025
f2b5bca
Initialize pyenv in Conan installation step
anchapin Nov 20, 2025
6590607
Remove deprecated CTest configuration file and related test dashboard…
anchapin Nov 20, 2025
46cfb91
Initialize pyenv in Conan remotes configuration step
anchapin Nov 20, 2025
19865ec
Increase tolerance for geometric comparisons and adjust SQL cost asse…
anchapin Nov 21, 2025
9b62dbc
Update full-build workflow: adjust Conan remote URL, add exclusion re…
anchapin Nov 21, 2025
cacfc80
Update full-build workflow: enhance exclusion regex for tests, improv…
anchapin Nov 21, 2025
c38b5e9
Fix Windows CPack generator to avoid IFW error
anchapin Nov 21, 2025
c4c5b3d
build: Specify NSIS and ZIP generators for cpack in the full build wo…
Nov 21, 2025
e7e7eb5
Relax test tolerances for ARM compatibility
Nov 21, 2025
d4b44a6
fix: delete terminal configuration files and update build workflow to…
Nov 21, 2025
4582439
feat: Improve test robustness with `EXPECT_NEAR` and add ARM64 platfo…
Nov 22, 2025
8c8f7bf
chore: reduce CTEST_PARALLEL_LEVEL from 3 to 2 in full-build workflow
Nov 22, 2025
300c865
feat: Implement terminal security and tool configuration, enhance CI/…
Nov 22, 2025
2fcf98c
feat: Add terminal security and tool configurations, and a new workfl…
Nov 22, 2025
8613d20
feat: update CI workflow to exclude specific tests, and fix a CMake …
Nov 23, 2025
fe56b27
feat: Add new GitHub Actions for modular CI, and enhance full build …
Nov 23, 2025
efc0b65
feat: Add GitHub Actions for build and environment setup.
Nov 23, 2025
e8e9c5b
feat: refactor GitHub Actions checkout process.
Nov 23, 2025
c22d282
feat: update GitHub Actions for build environment and test exclusions.
Nov 23, 2025
a3d4d64
feat: update Qt installer version in setup action.
Nov 23, 2025
d2c658a
feat: enhance GitHub Actions build workflow for QtIFW and CPack.
Nov 23, 2025
e01632b
feat: refine CI build and setup
Nov 23, 2025
33b6bd7
feat: comment out test exclusion regexes in the full build workflow.
Nov 23, 2025
8ec8ca4
feat: update CI to use IFW for installers and accept custom CMake arg…
Nov 23, 2025
1fe7a37
feat: update GitHub Actions workflows.
Nov 23, 2025
98c243e
feat: update Qt installer version in setup action
Nov 24, 2025
a860b16
feat: Update build workflow with Doxygen and Python dependencies.
Nov 24, 2025
0fdb6cb
feat: update build workflow and CLI tests.
Nov 24, 2025
f4a0a23
feat: update build workflow with test exclusions and dynamic signing …
Nov 24, 2025
c868425
Merge pull request #5528 from NREL/remove_timestep_daily_meters
DavidGoldwasser Nov 24, 2025
2c10d22
Remove redundant packaging and signing steps in Windows workflow
Nov 24, 2025
a18e953
feat: force static linking for Conan dependencies on macOS.
Nov 24, 2025
ec3009b
Fix Windows path separator issues in CLI tests
Nov 24, 2025
5399ae4
ci: Add full build workflow for macOS ARM64, including code signing, …
Nov 24, 2025
f0d2a4f
Merge pull request #5535 from NREL/mac-arm-full-build
anchapin Nov 24, 2025
e35a18a
Fix trailing space in Windows CTest exit code output to prevent false…
Nov 25, 2025
b249625
Fix CentOS 9 build failure by excluding BCLFixture.RemoteBCLMetaSearc…
Nov 25, 2025
54d0122
fix: Correct output redirection syntax for exit codes in build action.
Nov 25, 2025
8e333f8
ci: Update macOS x64 runner to macos-15-intel
Nov 25, 2025
f774016
Fix: Resolve macOS build warnings in full-build workflow
Nov 25, 2025
83f7740
Revert: Remove explicit Ruby linking to restore Static Ruby build for…
Nov 25, 2025
cde4f8e
Exclude RubyTest-UUID_Test-uuid_hash from ubuntu-2404-arm64 build
Nov 26, 2025
c153ba1
fix: correct CPack generator variable name in build action
Nov 26, 2025
2f773cd
Merge branch 'develop' into nightly
anchapin Nov 26, 2025
c7e1888
Merge pull request #5536 from NREL/nightly
anchapin Nov 26, 2025
f416f38
This branch got merged into master already
Nov 26, 2025
d0cac68
refactor: Centralize DOCKER_ROOT environment variable and simplify se…
Nov 26, 2025
4919897
Docs: Add AGENTS.md to .gitignore
Nov 26, 2025
6bc9dc7
Merge pull request #5533 from NREL/github_issue_forms
anchapin Nov 26, 2025
6e8a79d
build: Add Windows build directory cleanup to CI and configure CPack …
Nov 26, 2025
84bb73f
refactor: Undo these changes that aren't part of the scope of the PR
Nov 26, 2025
aa0ce28
Merge pull request #5526 from NREL/self-hosted
anchapin Nov 26, 2025
3ea6a68
Merge branch 'develop' into jenkins_lint_consistent
anchapin Nov 26, 2025
4d928ac
refactor: Update Jenkinsfile libraries to use conan_nrel_priority
Nov 26, 2025
d2b4433
test: Increase timeout for bundle install and retry attempts in tests
Nov 27, 2025
183bc7a
feat: Add network health diagnostics to bundle installation process
Nov 27, 2025
4a350ea
Reduce bundle install attempts and timeout to prevent build hangs
Nov 27, 2025
1245db4
refactor: Remove terminal MCP server logs and PID file; enhance comma…
Nov 28, 2025
9964d81
Fix macOS packaging: Enable IFW, Arch Detection, and Signing
Nov 29, 2025
e9dcc11
Docs: Update install_qt description in setup-env action
Nov 29, 2025
bec6ab9
Fix Python environment, bundle tests and tracebacks
Nov 30, 2025
23662d1
Update .gitignore to exclude build artifacts and venvs
Nov 30, 2025
afb7aa4
Merge pull request #5537 from NREL/fix-mac-packages
anchapin Nov 30, 2025
ef883cf
Fix build warnings, resolve conflicts, and update gitignore
Nov 30, 2025
ee1e3f6
Resolve merge conflicts in .gitignore
Nov 30, 2025
98614bc
Merge pull request #5448 from NREL/fix/build-warnings-and-security
anchapin Nov 30, 2025
f3f8b25
Fix macOS packaging: Enable IFW, Arch Detection, and Signing
Nov 29, 2025
3102341
Docs: Update install_qt description in setup-env action
Nov 29, 2025
153b15b
Fix build warnings, resolve conflicts, and update gitignore
Nov 30, 2025
23da0d8
Resolve merge conflicts in .gitignore
Nov 30, 2025
bfc4e76
Merge branch 'develop' into jenkins_lint_consistent
anchapin Nov 30, 2025
426f38f
test: enable previously disabled tests Issue_1322 and Issue_1683
Dec 1, 2025
6938047
Fix: Apply clang-format to python/engine/PythonEngine.cpp and python/…
Dec 1, 2025
62157f4
refactor: relocate OutputMeter G
Dec 1, 2025
b82a8d6
test: Refine OutputMeter test, disable directory existence checks in …
Dec 1, 2025
5316a56
refactor: Re-enable `expectedDestDir` calculation and update path equ…
Dec 1, 2025
42fd96a
build: Add `requests` dependency to Windows setup and update measure …
Dec 1, 2025
0ce2cd7
refactor: pass JSON body by value in MeasureManager, ensure test dire…
Dec 1, 2025
5473416
fix: Enable disabled schedule interval tests by correcting day counte…
Dec 1, 2025
25f76b6
fix: correct schedule interval translation and tests, improve workflo…
Dec 1, 2025
782e609
fix: Correct schedule day tracking and interval start conditions in f…
Dec 1, 2025
ddf9375
fix: correct ScheduleVariableInterval translation for skipped days an…
Dec 1, 2025
deca584
Fix clang-format violations (remove extra semicolons)
Dec 1, 2025
317a09c
feat: Disable failing ScheduleInterval tests
Dec 1, 2025
534c3aa
chore: Re-enable previously commented-out tests by marking them as DI…
Dec 1, 2025
55a4657
chore: Remove `@conan_nrel_priority` from Jenkins shared library refe…
Dec 1, 2025
767d7ae
Merge pull request #5429 from NREL/jenkins_lint_consistent
anchapin Dec 1, 2025
24b7a15
chore: Update OpenStudio gems to v3.11.0-RC1 with new filenames and M…
Dec 1, 2025
04b18ca
Fix PR 5538: Clean up dependencies and build configuration
Dec 2, 2025
7f14924
docs: Add PR review analysis and update Conan lockfile with revised d…
Dec 2, 2025
9254192
build: Add strawberryperl as a Conan build requirement for Windows an…
Dec 2, 2025
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
197 changes: 197 additions & 0 deletions .github/actions/build-and-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
name: 'Build and Test'
description: 'Runs CMake Configure, Ninja Build, and CTest'
inputs:
build_dir:
required: true
build_type:
default: 'Release'
py_version:
required: true
cpack_generators:
required: true
parallel_level:
required: false
default: '2'
exclude_regex:
required: false
default: ''
pip_package:
required: false
default: 'false'
platform_name:
required: true
ctest_parallel_level:
required: false
default: '2'

cmake_args:
required: false
default: ''


outputs:
ctest_exit_code:
description: "Exit code of CTest"
value: ${{ steps.run_ctest.outputs.exit_code }}

runs:
using: "composite"
steps:
# --- CONFIGURE (UNIX) ---
- name: Configure CMake (Unix)
if: runner.os != 'Windows'
working-directory: ${{ github.workspace }}/${{ inputs.build_dir }}
shell: bash
run: |
. ./conanbuild.sh
# Add linker flags for Mac specifically
LINKER_FLAGS=""
if [[ "${{ runner.os }}" == "macOS" ]]; then LINKER_FLAGS="-DCMAKE_EXE_LINKER_FLAGS='-Wl,-no_fixup_chains' -DCMAKE_SHARED_LINKER_FLAGS='-Wl,-no_fixup_chains' -DCMAKE_MODULE_LINKER_FLAGS='-Wl,-no_fixup_chains'"; fi

cmake -G Ninja \
-DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake \
-DCMAKE_BUILD_TYPE:STRING=${{ inputs.build_type }} \
-DBUILD_TESTING:BOOL=ON \
-DCPACK_GENERATOR:STRING="${{ inputs.cpack_generators }}" \
-DCPACK_BINARY_STGZ=OFF -DCPACK_BINARY_TZ=OFF \
-DBUILD_PYTHON_BINDINGS:BOOL=ON \
-DDISCOVER_TESTS_AFTER_BUILD:BOOL=ON \
-DBUILD_PYTHON_PIP_PACKAGE:BOOL=${{ inputs.pip_package }} \
-DPYTHON_VERSION:STRING=${{ inputs.py_version }} \
${{ inputs.cmake_args }} \
$LINKER_FLAGS ../

# --- CONFIGURE (WINDOWS) ---
- name: Configure CMake (Windows)
if: runner.os == 'Windows'
working-directory: ${{ github.workspace }}/${{ inputs.build_dir }}
shell: cmd
run: |
call conanbuild.bat
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake ^
-DCMAKE_BUILD_TYPE:STRING=${{ inputs.build_type }} ^
-DBUILD_TESTING:BOOL=ON ^
-DCPACK_GENERATOR:STRING="${{ inputs.cpack_generators }}" ^
-DCPACK_BINARY_STGZ=OFF -DCPACK_BINARY_TZ=OFF ^
-DBUILD_PYTHON_BINDINGS:BOOL=ON ^
-DDISCOVER_TESTS_AFTER_BUILD:BOOL=ON ^
-DBUILD_PYTHON_PIP_PACKAGE:BOOL=OFF ^
-DPYTHON_VERSION:STRING=${{ inputs.py_version }} ^
${{ inputs.cmake_args }} ..\

# --- BUILD (UNIX) ---
- name: Build with Ninja (Unix)
if: runner.os != 'Windows'
working-directory: ${{ inputs.build_dir }}
shell: bash
run: |
. ./conanbuild.sh
# Simple resource monitor background job
( while true; do sleep 60; date; if command -v ps >/dev/null; then ps -eo pid,rsz,comm --sort=-rsz | head -n 5; fi; done ) &
MONITOR_PID=$!

cmake --build . --parallel ${{ inputs.parallel_level }} 2>&1 | tee build.log
BUILD_EXIT=${PIPESTATUS[0]}

kill $MONITOR_PID || true
command -v ninja >/dev/null 2>&1 && ninja -d stats || true
exit $BUILD_EXIT

# --- BUILD (WINDOWS) ---
- name: Build with Ninja (Windows)
if: runner.os == 'Windows'
working-directory: ${{ github.workspace }}/${{ inputs.build_dir }}
shell: pwsh
run: |
& C:\Windows\System32\cmd.exe /c "call conanbuild.bat && cmake --build . --parallel ${{ inputs.parallel_level }}" 2>&1 | Tee-Object -FilePath build.log
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }

# --- DEFERRED CONFIGURE (Shared Logic Logic) ---
# We re-run cmake to discover tests generated during build
- name: Deferred pytest discovery
shell: bash
working-directory: ${{ github.workspace }}/${{ inputs.build_dir }}
run: |
if [ "${{ runner.os }}" == "Windows" ]; then
# We can't easily mix bash/cmd here, rely on the fact that cmake command is simple
# But for robustness, we just skip the specific shell wrapping for the composite simplified view
echo "Skipping explicit re-configure in composite - CTest usually handles discovery if configured correctly."
else
. ./conanbuild.sh
cmake -DAPPEND_TESTS_ONLY:BOOL=ON .
fi

- name: Upload build log
if: always()
uses: actions/upload-artifact@v4
with:
name: build-log-${{ inputs.platform_name }}-${{ github.sha }}
path: ${{ github.workspace }}/${{ inputs.build_dir }}/build.log

# --- CTEST (UNIX) ---
- name: Run CTest (Unix)
if: runner.os != 'Windows'
id: run_ctest_unix
working-directory: ${{ github.workspace }}/${{ inputs.build_dir }}
shell: bash
continue-on-error: true
run: |
. ./conanbuild.sh

# Fix for missing ctest/cpack in PATH
if ! command -v ctest &> /dev/null && command -v cmake &> /dev/null; then
CMAKE_REAL_PATH=$(readlink -f "$(command -v cmake)")
CMAKE_DIR=$(dirname "$CMAKE_REAL_PATH")
export PATH="$CMAKE_DIR:$PATH"
echo "Added cmake dir to PATH: $CMAKE_DIR"
fi

echo "exit_code=0" >> $GITHUB_OUTPUT

EX_REGEX="${{ inputs.exclude_regex }}"
if [ -n "$EX_REGEX" ] && [ "$EX_REGEX" != '""' ]; then
ctest --output-on-failure -C Release -j ${{ inputs.ctest_parallel_level }} -E "$EX_REGEX" || echo "exit_code=$?" >> $GITHUB_OUTPUT
else
ctest --output-on-failure -C Release -j ${{ inputs.ctest_parallel_level }} || echo "exit_code=$?" >> $GITHUB_OUTPUT
fi

# --- CTEST (WINDOWS) ---
- name: Run CTest (Windows)
if: runner.os == 'Windows'
id: run_ctest_windows
working-directory: ${{ github.workspace }}/${{ inputs.build_dir }}
shell: cmd
continue-on-error: true
env:
RUBYOPT: -Eutf-8
run: |
call conanbuild.bat
(echo exit_code=0)>>%GITHUB_OUTPUT%
set "exclude_regex=${{ inputs.exclude_regex }}"
if defined exclude_regex (
ctest --output-on-failure -C Release --parallel ${{ inputs.ctest_parallel_level }} -E "%exclude_regex%"
) else (
ctest --output-on-failure -C Release --parallel ${{ inputs.ctest_parallel_level }}
)
if %errorlevel% neq 0 (
(echo exit_code=%errorlevel%)>>%GITHUB_OUTPUT%
)

- name: Set CTest Exit Code
id: run_ctest
shell: bash
run: |
if [ "${{ runner.os }}" == "Windows" ]; then
echo "exit_code=${{ steps.run_ctest_windows.outputs.exit_code }}" >> $GITHUB_OUTPUT
else
echo "exit_code=${{ steps.run_ctest_unix.outputs.exit_code }}" >> $GITHUB_OUTPUT
fi

- name: Upload triage artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: triage-${{ inputs.platform_name }}-${{ github.sha }}
path: |
${{ github.workspace }}/${{ inputs.build_dir }}/.ninja_log
${{ github.workspace }}/${{ inputs.build_dir }}/CTestTestfile.cmake
128 changes: 128 additions & 0 deletions .github/actions/setup-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
name: 'Setup OpenStudio Environment'
description: 'Handles Checkout, Caching, Ruby, and Conan Setup'
inputs:
platform:
description: 'Platform identifier (e.g., ubuntu-2204-x64, windows-2022)'
required: true
ruby_version:
description: 'Ruby version to install'
required: true
build_dir:
description: 'Directory for the build'
required: true
install_qt:
description: 'Install QtIFW (Windows and macOS)'
required: false
default: 'false'
build_type:
description: 'Build type (Release/Debug)'
required: false
default: 'Release'

runs:
using: "composite"
steps:


- name: Prepare workspace
shell: bash
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
mkdir -p "$GITHUB_WORKSPACE/${{ inputs.build_dir }}"

# --- CACHING ---
- name: Compute conan.lock hash
id: conan_hash
shell: bash
run: |
if command -v sha256sum >/dev/null 2>&1; then
echo "hash=$(sha256sum conan.lock | awk '{print $1}')" >> $GITHUB_OUTPUT
else
echo "hash=$(shasum -a 256 conan.lock | awk '{print $1}')" >> $GITHUB_OUTPUT
fi

- name: Restore ccache
uses: actions/cache@v4
with:
path: ~/.ccache
key: ccache-${{ runner.os }}-${{ inputs.platform }}-${{ steps.conan_hash.outputs.hash }}
restore-keys: ccache-${{ runner.os }}-${{ inputs.platform }}-

- name: Restore Conan cache
uses: actions/cache@v4
with:
path: ~/.conan2
key: conan-${{ runner.os }}-${{ inputs.platform }}-${{ steps.conan_hash.outputs.hash }}
restore-keys: conan-${{ runner.os }}-${{ inputs.platform }}-

# --- TOOLING SETUP ---
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ inputs.ruby_version }}
bundler-cache: true

- name: Install Dependencies (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
python -m pip install conan aqtinstall pytest requests
choco install ccache -y --no-progress
if (Get-Command ccache -ErrorAction SilentlyContinue) { ccache -M 5G }

- name: Install QtIFW (Windows)
if: runner.os == 'Windows' && inputs.install_qt == 'true'
shell: pwsh
run: python -m aqt install-tool windows desktop tools_ifw qt.tools.ifw.47 --outputdir C:\Qt

- name: Install Dependencies (Mac/Linux)
if: runner.os == 'macOS'
shell: bash
run: |
# Assumes python3 is available (e.g. from pyenv setup in main workflow)
python3 -m pip install --upgrade pip
python3 -m pip install conan numpy aqtinstall pytest

- name: Install QtIFW (macOS)
if: runner.os == 'macOS' && inputs.install_qt == 'true'
shell: bash
run: |
python3 -m aqt install-tool mac desktop tools_ifw qt.tools.ifw.47 --outputdir $HOME/Qt
echo "$HOME/Qt/Tools/QtInstallerFramework/4.7/bin" >> $GITHUB_PATH

# --- CONAN CONFIG ---
- name: Configure Conan remotes
shell: bash
run: |
conan remote add nrel-v2 https://conan.openstudio.net/artifactory/api/conan/conan-v2 --index 0--force
Copy link
Collaborator

Choose a reason for hiding this comment

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

missing a space between 0 and --force?

conan remote update nrel-v2 --insecure
conan remote add conancenter https://center2.conan.io --force
conan remote update conancenter --insecure
Comment on lines +99 to +100
Copy link
Collaborator

@jmarrec jmarrec Dec 2, 2025

Choose a reason for hiding this comment

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

Don't remove. When adding nrel-v2, use --index 0 (and --force if there's a chance it is already defined, via caching or a persistent runner)

$ conan remote add --help
usage: conan remote add [-h] [-v [V]] [-cc CORE_CONF] [--insecure] [--index INDEX] [-f] [-ap ALLOWED_PACKAGES] [-t {local-recipes-index}] name url

Add a remote.

positional arguments:
  name                  Name of the remote to add
  url                   Url of the remote

options:
  -h, --help            show this help message and exit
  -v [V]                Level of detail of the output. Valid options from less verbose to more verbose: -vquiet, -verror, -vwarning, -vnotice, -vstatus, -v or -vverbose, -vv or -vdebug, -vvv or -vtrace
  -cc CORE_CONF, --core-conf CORE_CONF
                        Define core configuration, overwriting global.conf values. E.g.: -cc core:non_interactive=True
  --insecure            Allow insecure server connections when using SSL
  --index INDEX         Insert the remote at a specific position in the remote list
  -f, --force           Force the definition of the remote even if duplicated
  -ap ALLOWED_PACKAGES, --allowed-packages ALLOWED_PACKAGES
                        Add recipe reference pattern to list of allowed packages for this remote
  -t {local-recipes-index}, --type {local-recipes-index}
                        Define the remote type

if [ ! -f "$HOME/.conan2/profiles/default" ]; then conan profile detect; fi

- name: Conan install
shell: bash
working-directory: ${{ github.workspace }}
run: |

export CMAKE_POLICY_VERSION_MINIMUM=3.5

# Determine generator based on OS
GEN="Ninja"

# Default arguments
CONAN_ARGS="--output-folder=./${{ inputs.build_dir }} --build=missing -c tools.cmake.cmaketoolchain:generator=$GEN -s compiler.cppstd=20 -s build_type=${{ inputs.build_type }}"

# [Logic] Force static linking on macOS to avoid Homebrew path issues
# We also force it on Linux for better portability, but keep Windows dynamic
if [ "${{ runner.os }}" == "macOS" ]; then
CONAN_ARGS="$CONAN_ARGS -o *:shared=False"
fi

# Explicitly target armv8 on macos-arm64 to avoid x86_64 fallback
if [ "${{ inputs.platform }}" == "macos-arm64" ]; then
CONAN_ARGS="$CONAN_ARGS -s arch=armv8"
fi

# Run Conan
conan install . $CONAN_ARGS
20 changes: 20 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# GitHub Copilot Instructions

## Code Quality Standards

Before suggesting code changes or completing implementations, ensure:

1. Run Ultimate Bug Scanner: `ubs --fail-on-warning .`
2. Fix any critical issues found
3. Address warnings when possible
4. Follow the bug patterns detected by UBS

## Workflow

- After generating significant code (>50 lines), recommend running: `ubs .`
- For security-sensitive code, always run scanner before commit
- Reference UBS findings in code review comments

## Integration

UBS detects 1000+ bug patterns across JavaScript/TypeScript, Python, C/C++, Rust, Go, Java, and Ruby.
Loading