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

Chaining publish and unpublish Commands Changes Their Default Behavior #653

Open
ronilan opened this issue May 13, 2022 · 0 comments · May be fixed by #655
Open

Chaining publish and unpublish Commands Changes Their Default Behavior #653

ronilan opened this issue May 13, 2022 · 0 comments · May be fixed by #655

Comments

@ronilan
Copy link
Contributor

ronilan commented May 13, 2022

Describe the bug

Chaining publish and unpublish commands changes their default behavior in relation to staging/production hosts.

Expected Behavior

Commands publish and unpublish should always default to staging when production_host and staging_host are defined under binary in package.json.

Actual Behavior

When the commands publish and unpublish are executed by themselves they default to staging. However, if the command being executed is chained after another command (for example package publish or info unpublish) then the default reverts to binary.production_host. As a result - accidental publishing/unpublishing is possible.

Steps to Reproduce

1) Prep package.json

Replace "host" with staging_host and production_host in package.json

Example:

"staging_host": "https://apm-appoptics-bindings-node-dev-staging.s3.us-east-1.amazonaws.com",
"production_host": "https://apm-appoptics-bindings-node-dev-production.s3.us-east-1.amazonaws.com",

2) Run Commands one after the other

node-pre-gyp package
node-pre-gyp publish

Results in: ✅

[node-pre-gyp-test-app1] published to https://apm-appoptics-bindings-node-dev-staging.s3.us-east-1.amazonaws.com/node-pre-gyp/node-pre-gyp-test-app1/v0.1.0/Release/

node-pre-gyp info
node-pre-gyp unpublish

Results in: ✅

[node-pre-gyp-test-app1] Success: removed https://apm-appoptics-bindings-node-dev-staging.s3.amazonaws.com/node-pre-gyp/node-pre-gyp-test-app1/v0.1.0/Release/node-v83-darwin-x64.tar.gz

3) Run Chained Commands

node-pre-gyp package publish

Results in: ❌

[node-pre-gyp-test-app1] published to https://apm-appoptics-bindings-node-dev-production.s3.us-east-1.amazonaws.com/node-pre-gyp/node-pre-gyp-test-app1/v0.1.0/Release/

node-pre-gyp info unpublish

Results in: ❌

[node-pre-gyp-test-app1] Success: removed https://apm-appoptics-bindings-node-dev-production.s3.amazonaws.com/node-pre-gyp/node-pre-gyp-test-app1/v0.1.0/Release/node-v83-darwin-x64.tar.gz

Root Cause

When chained commands are executed, the first command in the chain will raise the binaryHostSet flag. Subsequent publish or unpublish will trigger the early return. Due to the early return, the host will not be configured correctly resulting in the bug described above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant