Skip to content

Commit f198761

Browse files
committed
feat: Release Extensible CLI via npm
publishing a thin TS Wrapper for the Golang based Extensible CLI
1 parent 83eaba1 commit f198761

File tree

9 files changed

+6547
-44
lines changed

9 files changed

+6547
-44
lines changed

.circleci/config.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,10 @@ jobs:
572572
cp cliv2/bin/snyk-linux-arm64 binary-releases/snyk-linux-arm64
573573
cp cliv2/bin/snyk-linux-arm64.sha256 binary-releases/snyk-linux-arm64.sha256
574574
- run:
575-
name: Signing shasums
575+
name: Making TS-Binary-Wrapper (snyk.tgz)
576+
command: make binary-releases/snyk.tgz
577+
- run:
578+
name: Signing all shasums
576579
command: make binary-releases/sha256sums.txt.asc
577580
- run:
578581
name: Making release.json
@@ -1028,7 +1031,6 @@ workflows:
10281031
matrix:
10291032
parameters:
10301033
artifact:
1031-
- snyk.tgz
10321034
- snyk-fix.tgz
10331035
- snyk-protect.tgz
10341036
- snyk-alpine
@@ -1074,7 +1076,6 @@ workflows:
10741076
context:
10751077
- snyk-cli-pgp-signing
10761078
requires:
1077-
- Build (snyk.tgz)
10781079
- Build (snyk-fix.tgz)
10791080
- Build (snyk-protect.tgz)
10801081
- Build (snyk-alpine)

Makefile

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,16 @@ help:
2020
@echo 'Use `npm run` for CLIv1 scripts.'
2121

2222
$(BINARY_RELEASES_FOLDER_TS_CLI):
23-
@mkdir $(BINARY_RELEASES_FOLDER_TS_CLI)
23+
@mkdir -p $(BINARY_RELEASES_FOLDER_TS_CLI)
2424

2525
$(BINARY_RELEASES_FOLDER_TS_CLI)/version: | $(BINARY_RELEASES_FOLDER_TS_CLI)
2626
./release-scripts/next-version.sh > $(BINARY_RELEASES_FOLDER_TS_CLI)/version
2727

2828
ifneq ($(BINARY_OUTPUT_FOLDER), $(BINARY_RELEASES_FOLDER_TS_CLI))
29-
$(BINARY_OUTPUT_FOLDER)/version: $(BINARY_RELEASES_FOLDER_TS_CLI)/version
29+
$(BINARY_OUTPUT_FOLDER):
30+
@mkdir -p $(BINARY_OUTPUT_FOLDER)
31+
32+
$(BINARY_OUTPUT_FOLDER)/version: $(BINARY_OUTPUT_FOLDER) $(BINARY_RELEASES_FOLDER_TS_CLI)/version
3033
@cp $(BINARY_RELEASES_FOLDER_TS_CLI)/version $(BINARY_OUTPUT_FOLDER)/version
3134
endif
3235

@@ -38,25 +41,26 @@ endif
3841
# Only removing "prepack" is not enough. We need to do additional cleanup (see clean-prepack).
3942
.INTERMEDIATE: prepack
4043
.SECONDARY: prepack
41-
prepack: $(BINARY_RELEASES_FOLDER_TS_CLI)/version
44+
prepack: $(BINARY_OUTPUT_FOLDER)/version
4245
@echo "'make prepack' was run. Run 'make clean-prepack' to rollback your package.json changes and this file." > prepack
4346
npm version "$(shell cat $(BINARY_RELEASES_FOLDER_TS_CLI)/version)" --no-git-tag-version --workspaces --include-workspace-root
47+
cd $(BINARY_WRAPPER_DIR) && npm version "$(shell cat $(CURDIR)/$(BINARY_RELEASES_FOLDER_TS_CLI)/version)" --no-git-tag-version --include-workspace-root
4448
npx ts-node ./release-scripts/prune-dependencies-in-packagejson.ts
4549

4650
.PHONY: clean-prepack
4751
clean-prepack:
48-
git checkout package.json package-lock.json packages/*/package.json packages/*/package-lock.json
52+
git checkout package.json package-lock.json packages/*/package.json packages/*/package-lock.json $(BINARY_WRAPPER_DIR)/package.json $(BINARY_WRAPPER_DIR)/package-lock.json
4953
rm -f prepack
5054

5155
.PHONY: clean-ts
5256
clean-ts:
5357
npm run clean
5458
rm -f -r $(BINARY_RELEASES_FOLDER_TS_CLI)
5559

56-
$(BINARY_OUTPUT_FOLDER)/sha256sums.txt.asc: $(wildcard $(BINARY_OUTPUT_FOLDER)/*.sha256)
60+
$(BINARY_OUTPUT_FOLDER)/sha256sums.txt.asc:
5761
./release-scripts/sha256sums.txt.asc.sh
5862

59-
$(BINARY_OUTPUT_FOLDER)/release.json: $(BINARY_OUTPUT_FOLDER)/version $(wildcard $(BINARY_OUTPUT_FOLDER)/*.sha256)
63+
$(BINARY_OUTPUT_FOLDER)/release.json: $(BINARY_OUTPUT_FOLDER)/version
6064
./release-scripts/release.json.sh
6165

6266
# --commit-path is forwarded to `git log <path>`.
@@ -71,8 +75,8 @@ $(BINARY_OUTPUT_FOLDER)/RELEASE_NOTES.md: prepack | $(BINARY_RELEASES_FOLDER_TS_
7175
%.sha256: %
7276
cd $(@D); shasum -a 256 $(<F) > $(@F); shasum -a 256 -c $(@F)
7377

74-
$(BINARY_RELEASES_FOLDER_TS_CLI)/snyk.tgz: prepack | $(BINARY_RELEASES_FOLDER_TS_CLI)
75-
mv $(shell npm pack) $(BINARY_RELEASES_FOLDER_TS_CLI)/snyk.tgz
78+
$(BINARY_RELEASES_FOLDER_TS_CLI)/snyk.tgz: prepack | $(BINARY_RELEASES_FOLDER_TS_CLI)
79+
$(MAKE) pack-binary-wrapper
7680
$(MAKE) $(BINARY_RELEASES_FOLDER_TS_CLI)/snyk.tgz.sha256
7781

7882
$(BINARY_RELEASES_FOLDER_TS_CLI)/snyk-fix.tgz: prepack | $(BINARY_RELEASES_FOLDER_TS_CLI)
@@ -121,8 +125,17 @@ $(BINARY_RELEASES_FOLDER_TS_CLI)/docker-mac-signed-bundle.tar.gz: prepack | $(BI
121125
$(MAKE) $(BINARY_RELEASES_FOLDER_TS_CLI)/docker-mac-signed-bundle.tar.gz.sha256
122126

123127
# targets responsible for the Wrapper CLI (TS around Golang)
128+
$(BINARY_WRAPPER_DIR)/README.md:
129+
@cp ./README.md $(BINARY_WRAPPER_DIR)/README.md
130+
131+
$(BINARY_WRAPPER_DIR)/SECURITY.md:
132+
@cp ./SECURITY.md $(BINARY_WRAPPER_DIR)/SECURITY.md
133+
134+
$(BINARY_WRAPPER_DIR)/LICENSE:
135+
@cp ./LICENSE $(BINARY_WRAPPER_DIR)/LICENSE
136+
124137
$(BINARY_WRAPPER_DIR)/src/generated:
125-
@mkdir $(BINARY_WRAPPER_DIR)/src/generated/
138+
@mkdir -p $(BINARY_WRAPPER_DIR)/src/generated/
126139

127140
$(BINARY_WRAPPER_DIR)/src/generated/version: $(BINARY_WRAPPER_DIR)/src/generated $(BINARY_RELEASES_FOLDER_TS_CLI)/version
128141
@cp $(BINARY_RELEASES_FOLDER_TS_CLI)/version $(BINARY_WRAPPER_DIR)/src/generated/version
@@ -132,7 +145,7 @@ $(BINARY_WRAPPER_DIR)/src/generated/sha256sums.txt:
132145
@cat $(BINARY_OUTPUT_FOLDER)/*.sha256 > $(BINARY_WRAPPER_DIR)/src/generated/sha256sums.txt
133146

134147
.PHONY: build-binary-wrapper
135-
build-binary-wrapper: $(BINARY_WRAPPER_DIR)/src/generated/version $(BINARY_WRAPPER_DIR)/src/generated/sha256sums.txt
148+
build-binary-wrapper: $(BINARY_WRAPPER_DIR)/src/generated/version $(BINARY_WRAPPER_DIR)/src/generated/sha256sums.txt $(BINARY_WRAPPER_DIR)/README.md $(BINARY_WRAPPER_DIR)/SECURITY.md $(BINARY_WRAPPER_DIR)/LICENSE
136149
@echo "-- Building Typescript Binary Wrapper ($(BINARY_WRAPPER_DIR)/dist/)"
137150
@cd $(BINARY_WRAPPER_DIR) && npm run build
138151

ts-binary-wrapper/bin/snyk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/usr/bin/env node
2+
require('../dist/index.js');

0 commit comments

Comments
 (0)