diff --git a/.github/workflows/dco-check.yml b/.github/workflows/dco-check.yml index 1c0ca6ec..f7dcdd33 100644 --- a/.github/workflows/dco-check.yml +++ b/.github/workflows/dco-check.yml @@ -4,7 +4,9 @@ on: [pull_request] jobs: check: - runs-on: ubuntu-latest + runs-on: + group: databricks-protected-runner-group + labels: linux-ubuntu-latest steps: - name: Check for DCO id: dco-check diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e854e459..320269c4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,7 +10,10 @@ on: jobs: lint: - runs-on: ubuntu-latest + runs-on: + group: databricks-protected-runner-group + labels: linux-ubuntu-latest + steps: - uses: actions/checkout@v3 - name: Cache node modules @@ -31,7 +34,9 @@ jobs: npm run lint unit-test: - runs-on: ubuntu-latest + runs-on: + group: databricks-protected-runner-group + labels: linux-ubuntu-latest strategy: matrix: # only LTS versions starting from the lowest we support @@ -72,7 +77,9 @@ jobs: retention-days: 1 e2e-test: - runs-on: ubuntu-latest + runs-on: + group: databricks-protected-runner-group + labels: linux-ubuntu-latest environment: azure-prod env: E2E_HOST: ${{ secrets.DATABRICKS_HOST }} @@ -110,7 +117,9 @@ jobs: coverage: needs: [unit-test, e2e-test] - runs-on: ubuntu-latest + runs-on: + group: databricks-protected-runner-group + labels: linux-ubuntu-latest env: cache-name: cache-node-modules diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0504b21c..7ba48145 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,9 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: + group: databricks-protected-runner-group + labels: linux-ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v1 diff --git a/lib/utils/lz4.ts b/lib/utils/lz4.ts index 8186024d..b8a8e8ad 100644 --- a/lib/utils/lz4.ts +++ b/lib/utils/lz4.ts @@ -6,10 +6,24 @@ function tryLoadLZ4Module(): LZ4Module | undefined { try { return require('lz4'); // eslint-disable-line global-require } catch (err) { - const isModuleNotFoundError = err instanceof Error && 'code' in err && err.code === 'MODULE_NOT_FOUND'; - if (!isModuleNotFoundError) { - throw err; + if (!(err instanceof Error) || !('code' in err)) { + console.warn('Unexpected error loading LZ4 module: Invalid error object', err); + return undefined; } + + if (err.code === 'MODULE_NOT_FOUND') { + console.warn('LZ4 module not installed: Missing dependency', err); + return undefined; + } + + if (err.code === 'ERR_DLOPEN_FAILED') { + console.warn('LZ4 native module failed to load: Architecture or version mismatch', err); + return undefined; + } + + // If it's not a known error, return undefined + console.warn('Unknown error loading LZ4 module: Unhandled error code', err); + return undefined; } }