Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
31 changes: 27 additions & 4 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,11 @@ env:
SEATABLE_API_TOKEN: ${{ fromJson(secrets.TEST_VARIABLES).SEATABLE_API_TOKEN }}
TRELLO_KEY: ${{ fromJson(secrets.TEST_VARIABLES).TRELLO_KEY }}
TRELLO_TOKEN: ${{ fromJson(secrets.TEST_VARIABLES).TRELLO_TOKEN }}
GOOGLE_ADS_REFRESH_TOKEN: ${{ fromJson(secrets.TEST_VARIABLES).GOOGLE_ADS_REFRESH_TOKEN }}
GOOGLE_ADS_CLIENT_ID: ${{ fromJson(secrets.TEST_VARIABLES).GOOGLE_ADS_CLIENT_ID }}
GOOGLE_ADS_CLIENT_SECRET: ${{ fromJson(secrets.TEST_VARIABLES).GOOGLE_ADS_CLIENT_SECRET }}
GOOGLE_ADS_DEVELOPER_TOKEN: ${{ fromJson(secrets.TEST_VARIABLES).GOOGLE_ADS_DEVELOPER_TOKEN }}
GOOGLE_ADS_CUSTOMER_ID: ${{ fromJson(secrets.TEST_VARIABLES).GOOGLE_ADS_CUSTOMER_ID }}

jobs:
PullRequestTests:
Expand Down Expand Up @@ -246,7 +251,7 @@ jobs:
cd ts
set +e
node --experimental-vm-modules \
./node_modules/jest/bin/jest.js --ci --maxWorkers=50% \
./node_modules/jest/bin/jest.js --ci --maxWorkers=50% --workerIdleMemoryLimit=2048MB \
--config src/jest.config.ts --json --outputFile=test-results.json
Comment thread
nickmazurenko marked this conversation as resolved.
TEST_EXIT_CODE=$?
set -e
Expand Down Expand Up @@ -328,7 +333,7 @@ jobs:
sys.exit(0)
PYEOF
env:
NODE_OPTIONS: "--max_old_space_size=8192"
NODE_OPTIONS: "--max_old_space_size=16384"

# Install system dependencies needed for building Qore and modules
- name: Install dependencies
Expand All @@ -341,7 +346,6 @@ jobs:
bison \
libmpfr-dev \
libpcre3-dev \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libbrotli-dev \
Expand All @@ -350,6 +354,25 @@ jobs:
libyaml-dev \
uuid-dev

# Install OpenSSL 3.5+ with native QUIC support (SSL_set_quic_tls_cbs)
# System OpenSSL 3.0.x lacks QUIC APIs needed by ngtcp2 for Qore's HTTP/3 support
# Qore's CI Docker images do the same via /etc/profile.d/quic.sh + OPENSSL_ROOT_DIR
- name: Install OpenSSL 3.5
run: |
# Remove system OpenSSL dev headers to avoid conflicts with OpenSSL 3.5
sudo apt-get remove -y libssl-dev 2>/dev/null || true
OPENSSL_VERSION="3.5.0"
OPENSSL_PREFIX="/opt/openssl-3.5"
curl -fsSL "https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_VERSION}/openssl-${OPENSSL_VERSION}.tar.gz" -o /tmp/openssl.tar.gz
cd /tmp && tar xzf openssl.tar.gz
cd "/tmp/openssl-${OPENSSL_VERSION}"
./Configure --prefix=${OPENSSL_PREFIX} --libdir=lib no-tests
make -j$(nproc)
sudo make install_sw
echo "${OPENSSL_PREFIX}/lib" | sudo tee /etc/ld.so.conf.d/openssl35.conf
sudo ldconfig
echo "OPENSSL_ROOT_DIR=${OPENSSL_PREFIX}" >> $GITHUB_ENV

# Install pre-built Node.js 24 with development headers and libnode.so
- name: Install Node.js 24 development files
run: |
Expand All @@ -374,7 +397,7 @@ jobs:
mkdir build
cd build
V8_INCLUDE_DIR=/opt/nodejs/include/node NODE_LIB_DIR=/opt/nodejs/lib cmake .. -DSINGLE_COMPILATION_UNIT=1 -DCMAKE_BUILD_TYPE=release
make && sudo make install
make -j$(nproc) && sudo make install

# Update library paths to ensure Qore can find its shared libraries
- name: Update Library Path
Expand Down
4 changes: 3 additions & 1 deletion bin/ts-proxy
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class TsProxy inherits TypeScriptProxy {
bool parent_closed;

bool test_send_error_used;
bool startup_complete;
}

constructor() : TypeScriptProxy(False) {
Expand Down Expand Up @@ -83,6 +84,7 @@ class TsProxy inherits TypeScriptProxy {
exit(0);
}
info("Connected to server: %y", s.getPeerInfo());
startup_complete = True;
commandLoop();
}

Expand Down Expand Up @@ -532,7 +534,7 @@ class TsProxy inherits TypeScriptProxy {
return False;
}
@debug {
if (getenv("TS_PROXY_TEST_FORCE_SEND_ERROR") && !test_send_error_used) {
if (startup_complete && getenv("TS_PROXY_TEST_FORCE_SEND_ERROR") && !test_send_error_used) {
test_send_error_used = True;
throw "SOCKET-CLOSED", "Forced send error for testing";
}
Expand Down
12 changes: 11 additions & 1 deletion qlib/TypeScriptActionInterface/JavaScriptProgramProxy.qc
Original file line number Diff line number Diff line change
Expand Up @@ -754,7 +754,17 @@ public class JavaScriptProgramProxy inherits TypeScriptProxy {
}
}
}
proc = new Process("ts-proxy", args, {
string cmd = "ts-proxy";
@debug {
# When running with --enable-debug, spawn child via qore interpreter
# so that @debug blocks in ts-proxy are also active
string ts_proxy_path = trim(`which ts-proxy 2>/dev/null`);
if (ts_proxy_path.val()) {
cmd = "qore";
args = ("--enable-debug", ts_proxy_path) + args;
}
}
proc = new Process(cmd, args, {
"env": env,
"close_fds": True,
});
Expand Down
Loading