Skip to content
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

Better npm ci integration #599

Merged
merged 2 commits into from
Nov 25, 2019
Merged
Changes from 1 commit
Commits
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
28 changes: 19 additions & 9 deletions configs/builder_type_cfg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,32 @@ builders:
commands:
- command: npm install --production

- name: npm-ci
info: "clean install production dependencies"
path: "path to config file which override the following default commands"
commands:
- command: npm clean-install --production

- name: npm-ci-dev
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your contribution!

npm-ci looks good to me and commonly used, however, grunt-ci and npm-ci-dev should be handled as a custom builder as they are less common for production use and we want to avoid pollution of builders.
in addition, as this config is transferred to binary, please run the following command on the root to update the builder binary fiile

//go:generate go run ./internal/buildtools/embed.go ./internal/buildtools/buildtools_msg.go -source=./configs/builder_type_cfg.yaml -target=./internal/commands/builder_type_cfg.go -name=BuilderTypeConfig -package=commands
if you have an issue please let me know

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I included npm-ci-dev only because you already had it. I agree that this is one is mostly nonsense in production. grunt-ci on the other hand is the only sane way to run grunt in my opinion. The problem with not using clean install is that you introduce changes completely outside of your control into your pipeline.
Either way, I can run custom builders so that's not a request just my opinion.

I will run the update on Monday

info: "clean install all dependencies"
path: "path to config file which override the following default commands"
commands:
- command: npm clean-install

- name: grunt
info: "execute grunt"
path: "path to config file which override the following default commands"
commands:
- command: npm install
- command: grunt

- name: grunt-ci
info: "clean install dependencies and run grunt"
path: "path to config file which override the following default commands"
commands:
- command: npm clean-install
- command: grunt

- name: golang
info: "build golang application"
path: "path to config file which override the following default commands"
Expand Down Expand Up @@ -58,12 +77,3 @@ builders:
info: "archives the source folder into a .zip file"
path: "archives the source folder into a .zip file"
commands:


- name: npmci
info: "npm ci"
path: "npm ci"
commands:
- command: npm ci