New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci: Add Nsolid runtime to CI and Integration tests #5332
Conversation
034edd6
to
15f263f
Compare
Can you please amend the LTS document accordingly? |
29f5fbc
to
41f169b
Compare
Hi @mcollina, thanks for taking a look to this proposal. |
0a71840
to
1856de2
Compare
@RafaelGSS are you ok in supporting this change in case there are issues? I don't expect there will be but better safe than sorry. |
1856de2
to
414bea3
Compare
Yes, happy to support it. |
If we add some runtime guarantee that is not If |
I'd +1 the question, because it's a valid concern |
My generic take on this is that we can support them if our tests run unmodified. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not opposed to adding the extra runtime check (though I do wonder why this particular one is necessary given it is a direct rebuild of core). My only concern is regarding the implementation. This PR introduces a lot of complicated configuration to appease the fact that the runtime doesn't support all of the core versions we currently support. I'd rather see a completely separate "alternative runtimes" set of workflows added. Or maybe make the jobs reusable and define new matrix strategies utilizing them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My generic take on this is that we can support them if our tests run unmodified.
We should write it down somewhere in case.
Anyway my idea is:
do we block a PR if the NSolid CI does not work?
Assuming the answer is "no" I would move this run by:
- set it as optional by setting
continue-on-error
Or:
- I would move it to a separate workflow
- I would run the workflow on merge on main (as we do for the package managers: https://github.com/fastify/fastify/blob/main/.github/workflows/package-manager-ci.yml)
- (idea/suggestion) Add a notification to someone (maybe by opening an issue here or elsewhere)
I think creating a new workflow with |
Hi @RafaelGSS what you think if we use the same workflow and put the something like this: continue-on-error: ${{ matrix.continue-on-error || false }}
strategy:
matrix:
runtime: [node, nsolid]
node-version: [14, 16, 18, 20]
os: [macos-latest, ubuntu-latest, windows-latest]
include:
- runtime: nsolid
nsolid-version: 5
continue-on-error: true
exclude:
# excludes node 14 on Windows
- os: windows-latest
runtime: node
node-version: 14
# Nsolid 5 does not support Node.js 14, 16
- runtime: nsolid
node-version: 14
- runtime: nsolid
node-version: 16
hi @jsumners, thanks for joining to the discussion, I really appreciate it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We only need the test job for nsolid runtime. Lint, coverage are already covered by the original ci.yml
768ba4a
to
b8c84af
Compare
Signed-off-by: Jefferson <jefferson.rios.caro@gmail.com> ci: Add Nsolid CI and Integration tests as separate pipelines
b8c84af
to
43aa205
Compare
I'd rather see a separate workflow that is dedicated to alternative runtimes. |
Signed-off-by: Jefferson <jefferson.rios.caro@gmail.com> ci: Add new CI as alternative Runtimes
0f7e304
to
6fcd518
Compare
It makes sense, the current approach is capable to receive new runtime contributions just adding the necessary includes/excludes in the matrix config and the conditional step to setup the proposed runtime. |
Signed-off-by: Jefferson <jefferson.rios.caro@gmail.com>
Propose N|Solid adoption
This pull request proposes the adoption of the N|Solid runtime, a fully compatible Node.js runtime developed by NodeSource.
Implementation
Details of the implementation:
Thank you for considering this addition to the Fastify project.
Checklist
npm run test
andnpm run benchmark
and the Code of conduct