Adrià Vilanova Martínez | 9aa2931 | 2022-01-16 02:42:46 +0100 | [diff] [blame] | 1 | .PHONY: node_deps clean_dist deps clean_deps serve_chromium serve_chromium_mv3 serve_gecko release release_chromium_stable release_chromium_beta release_chromium_canary release_gecko_stable build_test_extension clean_releases clean |
avm99963 | 6c35730 | 2020-08-09 19:54:08 +0200 | [diff] [blame] | 2 | |
Adrià Vilanova Martínez | 3465e77 | 2021-07-11 19:18:41 +0200 | [diff] [blame] | 3 | WEBPACK := ./node_modules/webpack-cli/bin/cli.js |
| 4 | RELEASE_SCRIPT := bash tools/release.bash |
avm99963 | 6c35730 | 2020-08-09 19:54:08 +0200 | [diff] [blame] | 5 | |
Adrià Vilanova Martínez | 413cb44 | 2021-09-06 00:30:45 +0200 | [diff] [blame] | 6 | # The sed command and the third_party/google-protobuf-commonjs_strict folder are |
| 7 | # needed because of https://github.com/protocolbuffers/protobuf/issues/7778. |
| 8 | grpc_proto_gen: |
| 9 | (cd src/killSwitch && \ |
| 10 | protoc -I=. --js_out=import_style=commonjs_strict:. api_proto/*.proto && \ |
Adrià Vilanova Martínez | 50435f8 | 2022-01-21 19:33:36 +0100 | [diff] [blame^] | 11 | protoc -I. --grpc-web_out=import_style=commonjs,mode=grpcwebtext:. api_proto/*.proto) |
Adrià Vilanova Martínez | 413cb44 | 2021-09-06 00:30:45 +0200 | [diff] [blame] | 12 | |
Adrià Vilanova Martínez | 3465e77 | 2021-07-11 19:18:41 +0200 | [diff] [blame] | 13 | node_deps: |
| 14 | npm ci --no-save |
avm99963 | 6c35730 | 2020-08-09 19:54:08 +0200 | [diff] [blame] | 15 | |
Adrià Vilanova Martínez | 3465e77 | 2021-07-11 19:18:41 +0200 | [diff] [blame] | 16 | clean_dist: |
| 17 | rm -rf dist |
avm99963 | 6c35730 | 2020-08-09 19:54:08 +0200 | [diff] [blame] | 18 | |
Adrià Vilanova Martínez | 3465e77 | 2021-07-11 19:18:41 +0200 | [diff] [blame] | 19 | deps: node_deps |
| 20 | mkdir -p dist |
avm99963 | bbc88c6 | 2020-12-25 03:44:41 +0100 | [diff] [blame] | 21 | |
Adrià Vilanova Martínez | 3465e77 | 2021-07-11 19:18:41 +0200 | [diff] [blame] | 22 | clean_deps: |
| 23 | rm -rf node_modules |
avm99963 | 6c35730 | 2020-08-09 19:54:08 +0200 | [diff] [blame] | 24 | |
Adrià Vilanova Martínez | 3465e77 | 2021-07-11 19:18:41 +0200 | [diff] [blame] | 25 | serve_chromium: deps |
| 26 | $(WEBPACK) --mode development --env browser_target=chromium --watch |
| 27 | |
| 28 | serve_chromium_mv3: deps |
| 29 | $(WEBPACK) --mode development --env browser_target=chromium_mv3 --watch |
| 30 | |
| 31 | serve_gecko: deps |
| 32 | $(WEBPACK) --mode development --env browser_target=gecko --watch |
| 33 | |
| 34 | release: release_chromium_stable release_chromium_beta release_gecko_stable |
| 35 | |
| 36 | release_chromium_stable: deps |
| 37 | $(WEBPACK) --mode production --env browser_target=chromium |
| 38 | $(RELEASE_SCRIPT) -c stable -b chromium |
| 39 | rm -rf dist/chromium |
| 40 | |
| 41 | release_chromium_beta: deps |
Adrià Vilanova Martínez | d4a4f3d | 2021-10-23 18:25:39 +0200 | [diff] [blame] | 42 | $(WEBPACK) --mode production --env browser_target=chromium_mv3 |
| 43 | $(RELEASE_SCRIPT) -c beta -b chromium_mv3 |
| 44 | rm -rf dist/chromium_mv3 |
Adrià Vilanova Martínez | 3465e77 | 2021-07-11 19:18:41 +0200 | [diff] [blame] | 45 | |
Adrià Vilanova Martínez | 9aa2931 | 2022-01-16 02:42:46 +0100 | [diff] [blame] | 46 | release_chromium_canary: deps |
| 47 | $(WEBPACK) --mode production --env browser_target=chromium_mv3 --env canary |
| 48 | $(RELEASE_SCRIPT) -c canary -b chromium_mv3 |
| 49 | rm -rf dist/chromium_mv3 |
| 50 | |
Adrià Vilanova Martínez | 3465e77 | 2021-07-11 19:18:41 +0200 | [diff] [blame] | 51 | release_gecko_stable: deps |
| 52 | $(WEBPACK) --mode production --env browser_target=gecko |
| 53 | $(RELEASE_SCRIPT) -c stable -b gecko |
| 54 | rm -rf dist/gecko |
| 55 | |
| 56 | # Target to build the extension for webext lint in the Zuul Check Pipeline. |
| 57 | build_test_extension: deps |
| 58 | $(WEBPACK) --mode production --env browser_target=gecko |
| 59 | $(RELEASE_SCRIPT) -c stable -b gecko |
| 60 | |
| 61 | clean_releases: |
avm99963 | 6c35730 | 2020-08-09 19:54:08 +0200 | [diff] [blame] | 62 | rm -rf out |
Adrià Vilanova Martínez | 3465e77 | 2021-07-11 19:18:41 +0200 | [diff] [blame] | 63 | |
| 64 | clean: clean_deps clean_dist clean_releases |