Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
a3eb083
VM2 compatibility additions
skvelymake Aug 1, 2023
e0bc85f
Support Proxy object transfer to isolate
skvelymake Sep 12, 2023
8ef4e7e
Add prebuilds to NPM package
skvelymake Aug 7, 2023
7683f7d
Lower number of isolates to reduce flakiness on macOS
skvelymake Aug 14, 2023
5d52548
Update Node versions we publish for
skvelymake May 6, 2024
224fc70
Install node-gyp as dependency
skvelymake May 6, 2024
27f9122
Fix windows prebuildify build
skvelymake May 6, 2024
aec2a31
Publish correct prebuilds
skvelymake May 6, 2024
015d5d2
4.7.3
skvelymake May 6, 2024
35a8a5f
Update node-gyp-build to load correct modules
skvelymake May 6, 2024
7279fd5
4.7.4
skvelymake May 6, 2024
a17d860
Add Linux ARM build (#1)
skvelymake Sep 12, 2024
c6c9012
4.8.0
skvelymake Sep 12, 2024
5f6311b
build: fix prebuilds to older libc for compatibility (#2)
skvelymake Sep 12, 2024
8153fa9
4.8.1
skvelymake Sep 12, 2024
a4f3973
ci(codeowners): sync CODEOWNERS with repository owner
make-pulumi[bot] Sep 23, 2024
d4e26d4
ci: update validate-pr.yml
make-pulumi[bot] Oct 4, 2024
b0481d9
build: add ARM runner (#3)
skvelymake Nov 27, 2024
b0216c8
fix: report external memory to parent isolate (#5)
skvelymake Nov 29, 2024
5152164
fix: propagate garbage collector calls to owned isolates (#6)
skvelymake Nov 29, 2024
8837065
4.8.2-alpha.0 (#7)
skvelymake Nov 29, 2024
90e71fc
build: fix publish workflow (#8)
skvelymake Nov 29, 2024
82398b8
v4.8.2 (#9)
skvelymake Dec 5, 2024
1c34925
fix: correctly propagate exceptions to calling isolate (#10)
skvelymake Dec 23, 2024
ab8b972
v4.8.3
skvelymake Dec 23, 2024
8de32f5
ci: update validate-pr.yml
make-pulumi[bot] Jun 25, 2025
8db4c83
ci(codeowners): sync CODEOWNERS with repository owner
make-pulumi[bot] Nov 1, 2025
1aa94a3
feat: add agent context files
fandasson Mar 3, 2026
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
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# The header of Codeowners is autogenerated from https://github.com/integromat/mono. Don’t edit code before END-AUTOGENERATED-SECTION!
* @integromat/build-run-backend
### END-AUTOGENERATED-SECTION
25 changes: 13 additions & 12 deletions .github/workflows/build.yml → .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,36 @@
name: Build & Test

on: [push, pull_request]
on:
pull_request:
paths:
- '.github/workflows/ci.yml'
- 'src/**'
- 'vendor/**'
- 'tests/**'
- '*.js'

jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version: [ 16.x, 18.x, 20.x ]
os: [ ubuntu-latest, macos-latest, windows-latest ]
os: [ ubuntu-latest, macos-latest, windows-latest, make-ubuntu24-arm64-2c ]
fail-fast: false
steps:
- uses: actions/checkout@v4
# https://github.com/nodejs/node-gyp/issues/2869
- run: python3 -m pip install setuptools
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Add msbuild to PATH
if: matrix.os == 'windows-latest'
uses: microsoft/setup-msbuild@v1.3
- name: Install node-gyp
if: matrix.os == 'windows-latest'
run: |
npm install --global node-gyp@latest
uses: microsoft/setup-msbuild@v2
- name: Build
run: |
npm install --build-from-source
npm install && npm run rebuild
- name: Test
uses: nick-fields/retry@v2
uses: nick-fields/retry@v3
with:
max_attempts: 3
retry_on: error
Expand All @@ -50,7 +51,7 @@ jobs:
apk add g++ make python3
- name: Build
run: |
npm install --build-from-source
npm install && npm run rebuild
- name: Test
run: |
npm test
Expand Down
58 changes: 0 additions & 58 deletions .github/workflows/prebuild.yml

This file was deleted.

102 changes: 102 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Publish to NPM with pre-built binaries

on:
release:
types: [created]

jobs:
build-linux:
runs-on: ${{ matrix.os }}
# This will force build on an older libc version
container: node:20-bullseye
strategy:
matrix:
os: [ ubuntu-latest, make-ubuntu24-arm64-2c ]
steps:
- uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: npm
cache-dependency-path: 'package-lock.json'

- name: Install dependencies
run: npm ci --ignore-scripts

- name: Build native extension
run: npx prebuildify --napi=false --name isolated-vm --tag-libc -t v16.20.2 -t v18.20.4 -t v20.16.0 --strip
env:
npm_config_jobs: max # max parallel node-gyp compile jobs

- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: binaries-${{ matrix.os }}
path: ./prebuilds

build-others:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest]
steps:
- uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: npm
cache-dependency-path: 'package-lock.json'

- name: Install dependencies
run: npm ci --ignore-scripts

- name: Add msbuild to PATH
if: matrix.os == 'windows-latest'
uses: microsoft/setup-msbuild@v2

- name: Build native extension
run: npx prebuildify --napi=false --name isolated-vm -t v16.20.2 -t v18.20.4 -t v20.16.0 --strip
env:
npm_config_jobs: max # max parallel node-gyp compile jobs

- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: binaries-${{ matrix.os }}
path: ./prebuilds

publish:
needs:
- build-others
- build-linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: npm
cache-dependency-path: 'package-lock.json'
registry-url: 'https://registry.npmjs.org'
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Install dependencies
run: npm ci --ignore-scripts

- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: /tmp/artifacts

- name: Move artifacts to prebuilds directory
run: mkdir --parents ./prebuilds && cp --recursive /tmp/artifacts/binaries-*/* ./prebuilds

- name: Publish to NPM
run: npm publish
50 changes: 50 additions & 0 deletions .github/workflows/validate-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
######
# This file is autogenerated from https://github.com/integromat/mono/blob/master/libs/github-resources/src/repositories/isolated-vm.ts. Do not edit manually!!!
######

name: PR
on:
pull_request:
types:
- opened
- reopened
- synchronize
- labeled
- unlabeled
- edited
merge_group:

# run only latest workflow, cancel other runs of this workflow
concurrency:
group: validate-pr-${{ github.ref }}
cancel-in-progress: true

env:
FORCE_COLOR: '1'

jobs:
validate-pr:
name: Validate PR
runs-on: ubuntu-latest
permissions:
id-token: write
issues: write
pull-requests: write
contents: read
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ github.token }}
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
if: github.event_name != 'merge_group'

- name: Setup Node.js
if: github.event_name != 'merge_group'
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4
with:
registry-url: https://registry.npmjs.org
node-version: '>=20.0'

- name: Validate PR
if: github.event_name != 'merge_group'
run: npx @integromat/actions-toolkit validate-pr --skipPrDescriptionLengthValidation
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
build/
node_modules/
package-lock.json
out/
.cache/
compile_commands.json
Expand Down
2 changes: 1 addition & 1 deletion .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ test.js
tests
out/
build/
prebuild/
.github/
.prebuildrc
.travis.yml
.clang-tidy
.vscode/
*.md
Loading
Loading