Removed BYPRODUCTS ${FLUXGRAPH_GEN_SRCS} ${FLUXGRAPH_GEN_HDRS} from C… #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: provider-sim-ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| VCPKG_COMMIT: "66c0373dc7fca549e5803087b9487edfe3aca0a1" | |
| jobs: | |
| linux-release: | |
| name: Linux Release (FluxGraph OFF) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y ninja-build g++ | |
| - name: Validate requirements lockfile | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| LOCKFILE="requirements-lock.txt" | |
| test -f "$LOCKFILE" | |
| if od -An -tx1 "$LOCKFILE" | tr -s ' ' '\n' | grep -qx '00'; then | |
| echo "ERROR: $LOCKFILE contains NUL bytes (binary corruption)" >&2 | |
| exit 1 | |
| fi | |
| iconv -f UTF-8 -t UTF-8 "$LOCKFILE" > /dev/null 2>&1 | |
| echo "OK: $LOCKFILE is valid UTF-8 and contains no NUL bytes" | |
| - name: Setup Python and dependencies | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| cache: "pip" | |
| cache-dependency-path: requirements-lock.txt | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements-lock.txt | |
| - name: Setup vcpkg | |
| uses: lukka/run-vcpkg@v11 | |
| with: | |
| vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }} | |
| doNotCache: false | |
| - name: Build | |
| run: | | |
| cmake --preset ci-linux-release | |
| cmake --build --preset ci-linux-release --parallel | |
| - name: Test (CTest provider baseline) | |
| run: ctest --preset ci-linux-release -L provider | |
| windows-release: | |
| name: Windows Release (FluxGraph OFF) | |
| runs-on: windows-2022 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Validate requirements lockfile | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| LOCKFILE="requirements-lock.txt" | |
| test -f "$LOCKFILE" | |
| if od -An -tx1 "$LOCKFILE" | tr -s ' ' '\n' | grep -qx '00'; then | |
| echo "ERROR: $LOCKFILE contains NUL bytes (binary corruption)" >&2 | |
| exit 1 | |
| fi | |
| iconv -f UTF-8 -t UTF-8 "$LOCKFILE" > /dev/null 2>&1 | |
| echo "OK: $LOCKFILE is valid UTF-8 and contains no NUL bytes" | |
| - name: Setup Python and dependencies | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| cache: "pip" | |
| cache-dependency-path: requirements-lock.txt | |
| - name: Install Python dependencies | |
| shell: pwsh | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements-lock.txt | |
| - name: Setup vcpkg | |
| uses: lukka/run-vcpkg@v11 | |
| with: | |
| vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }} | |
| doNotCache: false | |
| - name: Build | |
| shell: pwsh | |
| run: | | |
| cmake --preset ci-windows-release | |
| cmake --build --preset ci-windows-release --parallel | |
| - name: Test (CTest provider baseline) | |
| shell: pwsh | |
| run: ctest --preset ci-windows-release -L provider | |
| linux-fluxgraph-advisory: | |
| name: Linux Release (FluxGraph ON, Advisory) | |
| runs-on: ubuntu-24.04 | |
| continue-on-error: true | |
| steps: | |
| - name: Checkout provider-sim | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Resolve FluxGraph pin | |
| id: pins | |
| run: | | |
| set -euo pipefail | |
| FLUXGRAPH_REPO=$(awk '/^fluxgraph:/{f=1; next} f && /repository:/{print $2; exit}' .ci/dependency-pins.yml) | |
| FLUXGRAPH_REF=$(awk '/^fluxgraph:/{f=1; next} f && /ref:/{print $2; exit}' .ci/dependency-pins.yml) | |
| if [ -z "$FLUXGRAPH_REPO" ] || [ -z "$FLUXGRAPH_REF" ]; then | |
| echo "Failed to resolve FluxGraph pin from .ci/dependency-pins.yml" >&2 | |
| exit 1 | |
| fi | |
| echo "repo=$FLUXGRAPH_REPO" >> "$GITHUB_OUTPUT" | |
| echo "ref=$FLUXGRAPH_REF" >> "$GITHUB_OUTPUT" | |
| echo "Using FluxGraph pin: $FLUXGRAPH_REPO@$FLUXGRAPH_REF" | |
| - name: Checkout FluxGraph | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: ${{ steps.pins.outputs.repo }} | |
| ref: ${{ steps.pins.outputs.ref }} | |
| path: fluxgraph | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y ninja-build g++ | |
| - name: Validate requirements lockfile | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| LOCKFILE="requirements-lock.txt" | |
| test -f "$LOCKFILE" | |
| if od -An -tx1 "$LOCKFILE" | tr -s ' ' '\n' | grep -qx '00'; then | |
| echo "ERROR: $LOCKFILE contains NUL bytes (binary corruption)" >&2 | |
| exit 1 | |
| fi | |
| iconv -f UTF-8 -t UTF-8 "$LOCKFILE" > /dev/null 2>&1 | |
| echo "OK: $LOCKFILE is valid UTF-8 and contains no NUL bytes" | |
| - name: Setup Python and dependencies | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| cache: "pip" | |
| cache-dependency-path: requirements-lock.txt | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements-lock.txt | |
| - name: Setup vcpkg | |
| uses: lukka/run-vcpkg@v11 | |
| with: | |
| vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }} | |
| doNotCache: false | |
| - name: Build FluxGraph server | |
| working-directory: fluxgraph | |
| run: | | |
| cmake --preset ci-linux-release-server | |
| cmake --build --preset ci-linux-release-server --parallel | |
| - name: Build provider-sim (FluxGraph ON) | |
| run: | | |
| cmake --preset ci-linux-release-fluxgraph -DFLUXGRAPH_DIR="$GITHUB_WORKSPACE/fluxgraph" | |
| cmake --build --preset ci-linux-release-fluxgraph --parallel | |
| - name: Test FluxGraph suites | |
| run: | | |
| SERVER_BIN="$(find "$GITHUB_WORKSPACE/fluxgraph/build-server" -type f -name fluxgraph-server | head -n 1)" | |
| if [ -z "$SERVER_BIN" ]; then | |
| echo "ERROR: fluxgraph-server binary not found under $GITHUB_WORKSPACE/fluxgraph/build-server" >&2 | |
| exit 1 | |
| fi | |
| FLUXGRAPH_SERVER_EXE="$SERVER_BIN" ctest --preset ci-linux-release-fluxgraph -L fluxgraph |