diff --git a/.github/workflows/conformance.yml b/.github/workflows/conformance.yml index 444cf54..e02a2de 100644 --- a/.github/workflows/conformance.yml +++ b/.github/workflows/conformance.yml @@ -40,13 +40,23 @@ jobs: uses: actions/checkout@v6 with: repository: GreicodexJM/fidex-conformance + # Pinned to feature/FID-7-interop until the matching PR + # (GreicodexJM/fidex-conformance#1) merges to master; revert + # to the default branch in the follow-up cleanup commit. + ref: feature/FID-7-interop path: fidex-conformance - name: Setup PHP 8.2 uses: shivammathur/setup-php@v2 with: php-version: '8.2' - extensions: pdo, pdo_sqlite, openssl, curl, json, mbstring, sqlite3 + # gmp is REQUIRED for FideX conformance: brick/math falls back to + # a pure-PHP calculator without it, and 4096-bit RSA-OAEP modPow + # in pure-PHP routinely runs minutes per envelope — which makes + # the queue worker hang inside the suite's 30s drain budget. + # bcmath is a viable secondary backend; we install both so the + # workflow stays portable across PHP versions. + extensions: pdo, pdo_sqlite, openssl, curl, json, mbstring, sqlite3, gmp, bcmath coverage: none - name: Setup Go @@ -116,6 +126,7 @@ jobs: --node-db-path /tmp/fidex-php-ci.sqlite \ --node-messages-table fidex_messages \ --node-messages-direction inbound \ + --node-worker-cmd "cd $GITHUB_WORKSPACE/fidex-php && FIDEX_NODE_ID=urn:custom:fidex-php-ci FIDEX_NODE_BASE_URL=http://localhost:18081 FIDEX_API_KEY=ci-conformance-key-32-chars-aaaaaaa FIDEX_DB_DRIVER=sqlite FIDEX_DB_PATH=/tmp/fidex-php-ci.sqlite FIDEX_ALLOW_HTTP_REGISTRATION=true timeout 60s php bin/worker.php" \ --profile core - name: Upload report @@ -150,7 +161,13 @@ jobs: - uses: shivammathur/setup-php@v2 with: php-version: '8.2' - extensions: pdo, pdo_sqlite, openssl, curl, json, mbstring, sqlite3 + # gmp is REQUIRED for FideX conformance: brick/math falls back to + # a pure-PHP calculator without it, and 4096-bit RSA-OAEP modPow + # in pure-PHP routinely runs minutes per envelope — which makes + # the queue worker hang inside the suite's 30s drain budget. + # bcmath is a viable secondary backend; we install both so the + # workflow stays portable across PHP versions. + extensions: pdo, pdo_sqlite, openssl, curl, json, mbstring, sqlite3, gmp, bcmath - uses: actions/setup-go@v6 with: go-version: '1.24' @@ -209,6 +226,7 @@ jobs: --node-db-path /tmp/fidex-php-ci.sqlite \ --node-messages-table fidex_messages \ --node-messages-direction inbound \ + --node-worker-cmd "cd $GITHUB_WORKSPACE/fidex-php && FIDEX_NODE_ID=urn:custom:fidex-php-ci FIDEX_NODE_BASE_URL=http://localhost:18081 FIDEX_API_KEY=ci-conformance-key-32-chars-aaaaaaa FIDEX_DB_DRIVER=sqlite FIDEX_DB_PATH=/tmp/fidex-php-ci.sqlite FIDEX_ALLOW_HTTP_REGISTRATION=true timeout 60s php bin/worker.php" \ --profile edge \ || echo "::warning::enhanced/edge profile failures advisory pending CONFORMANCE.md gap closure"