NPM Serverless CodeBuild CI

Hi,

I’m in the middle of migration of serverless build stack from Jenkins into CodeBuild and everything was going sooth till few Errors ruined my mission :smiley: .
I’m doing build on NPM package, but I have the following issue:

Time Elapsed 00:00:02.41

> game-state-resources@0.1.0 build:authentication
> npm serverless deploy


> game-state-resources@0.1.0 build:dotnet
> cross-var dotnet lambda package bin/dotnet/$npm_config_stack.zip --project-location dotnet/src/$npm_config_dir --configuration Release --framework netcoreapp3.1

/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:328
throw e;
^

ReferenceError: Unknown plugin "transform-runtime" specified in "/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/regenerator-transform/package.json" at 0, attempted to resolve relative to "/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/regenerator-transform" (While processing preset: "/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/babel-preset-es2015/lib/index.js")
at /codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:180:17
at Array.map (<anonymous>)
at Function.normalisePlugins (/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:158:20)
at OptionManager.mergeOptions (/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:234:36)
at OptionManager.init (/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
at compile (/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/babel-register/lib/node.js:103:45)
at loader (/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/babel-register/lib/node.js:144:14)
at Object.require.extensions.<computed> [as .js] (/codebuild/output/src502360946/src/github.com/test/game-test/serverless/node_modules/babel-register/lib/node.js:154:7)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)

[Container] 2022/09/10 08:06:10 Command did not exit successfully npm run publish exit status 1
[Container] 2022/09/10 08:06:10 Phase complete: BUILD State: FAILED
[Container] 2022/09/10 08:06:10 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: npm run publish. Reason: exit status 1
[Container] 2022/09/10 08:06:10 Entering phase POST_BUILD
[Container] 2022/09/10 08:06:10 Phase complete: POST_BUILD State: SUCCEEDED
[Container] 2022/09/10 08:06:10 Phase context status code:  Message:

If I use solution mentioned at StackOverflow:

Then I got into another issue:

Time Elapsed 00:00:02.34

> game-state-resources@0.1.0 build:authentication
> npm run build:dotnet --stack=authentication --dir=Authentication


> game-state-resources@0.1.0 build:dotnet
> cross-var dotnet lambda package bin/dotnet/$npm_config_stack.zip --project-location dotnet/src/$npm_config_dir --configuration Release --framework netcoreapp3.1

/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:328
throw e;
^

Error: Options {"loose":true} passed to /codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-preset-env/lib/index.js which does not accept options. (While processing preset: "/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-preset-env/lib/index.js") (While processing preset: "/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-preset-env/lib/index.js") (While processing preset: "/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-preset-es2015/lib/index.js")
at /codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:314:17
at Array.map (<anonymous>)
at OptionManager.resolvePresets (/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
at OptionManager.mergePresets (/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
at OptionManager.mergeOptions (/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
at OptionManager.init (/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
at compile (/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-register/lib/node.js:103:45)
at loader (/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-register/lib/node.js:144:14)
at Object.require.extensions.<computed> [as .js] (/codebuild/output/src381252920/src/github.com/testGame/game-test/serverless/node_modules/babel-register/lib/node.js:154:7)
at Module.load (node:internal/modules/cjs/loader:981:32)

I would like to mention that same Docker image works perfectly in Jenkins and locally on MacOS, but it fails in CodeBuild.
Hopefully someone had this issue in past and it got fixed

Best regards,
Eugeniu!