GitHub
01/24/2025, 10:19 PM${os}-{arch}-{libc}
users should not need to require these automatically, npm should determine the required
optional dependency to download at install time.
supported_platforms
"@pact-foundation/pact-core-darwin-arm64": "16.0.0",
"@pact-foundation/pact-core-darwin-x64": "16.0.0",
"@pact-foundation/pact-core-linux-arm64-glibc": "16.0.0",
"@pact-foundation/pact-core-linux-arm64-musl": "16.0.0",
"@pact-foundation/pact-core-linux-x64-glibc": "16.0.0",
"@pact-foundation/pact-core-linux-x64-musl": "16.0.0",
"@pact-foundation/pact-core-windows-x64": "16.0.0"
CI Improvements
Significant build time reductions, by reducing the times when prebuilds are created.
• libpact_ffi node bindings as prebuilds will only be created on master
• test suite will download the latest release prebuilds via gh cli, if not on a master branch
This could be further improved to
• build node bindings & prebuilds, on pull requests, where
• the libpact_ffi version has changed
• the code in native or the bindings.gyp changes
• allow top level job conditional skipping.
• it appears you cannot skip an entire job based on a condition, which is a pre-requisite for another job, so you have to nested the condition at each step level.
Testing
Consumed in pact-js, via scoped publish, shown tested in following forked PR
• YOU54F/pact-js#3
Published for testing
"@you54f/pact": "14.0.1",
"@you54f/pact-core": "17.0.4",
"@you54f/pact-core-darwin-arm64": "17.0.4",
"@you54f/pact-core-darwin-x64": "17.0.4",
"@you54f/pact-core-linux-arm64-glibc": "17.0.4",
"@you54f/pact-core-linux-arm64-musl": "17.0.4",
"@you54f/pact-core-linux-x64-glibc": "17.0.4",
"@you54f/pact-core-linux-x64-musl": "17.0.4",
"@you54f/pact-core-windows-x64": "17.0.4",
Tested with
• npm (works from node 16+)
• yarn pnp (berry) - latest stable (works from node 18+)
• pnpm (works from node 18+)
matrix:
node-version: [16, 18, 20, 22]
npm_package_manager:
- yarn
- pnpm
- npm
os: [
macos-13,
macos-15,
ubuntu-24.04,
ubuntu-24.04-arm,
windows-latest
]
exclude:
- npm_package_manager: yarn
node-version: 16
- npm_package_manager: pnpm
node-version: 16
See example workflow / simple project
https://github.com/YOU54F/pact-js-packagers-test/blob/main/.github/workflows/test.yml
pact-foundation/pact-js-coreGitHub
01/24/2025, 10:19 PMGitHub
02/17/2025, 1:15 PM