blob: bef8a1cd5196f7065c7aba2ebad5ca5c0fec6360 [file] [log] [blame]
Adrià Vilanova Martínezb47ec062023-01-15 17:43:26 +01001.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 test clean trigger_nightly_build
avm999636c357302020-08-09 19:54:08 +02002
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +02003WEBPACK := ./node_modules/webpack-cli/bin/cli.js
Adrià Vilanova Martínezb47ec062023-01-15 17:43:26 +01004JEST := node --experimental-vm-modules ./node_modules/jest/bin/jest.js
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +02005RELEASE_SCRIPT := bash tools/release.bash
avm999636c357302020-08-09 19:54:08 +02006
Adrià Vilanova Martínez413cb442021-09-06 00:30:45 +02007grpc_proto_gen:
8 (cd src/killSwitch && \
9 protoc -I=. --js_out=import_style=commonjs_strict:. api_proto/*.proto && \
Adrià Vilanova Martínez50435f82022-01-21 19:33:36 +010010 protoc -I. --grpc-web_out=import_style=commonjs,mode=grpcwebtext:. api_proto/*.proto)
Adrià Vilanova Martínez41188592022-01-21 19:47:41 +010011 (cd src/workflows && \
12 protoc -I=. --js_out=import_style=commonjs_strict:. proto/*.proto)
Adrià Vilanova Martínez413cb442021-09-06 00:30:45 +020013
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020014node_deps:
15 npm ci --no-save
avm999636c357302020-08-09 19:54:08 +020016
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020017clean_dist:
18 rm -rf dist
avm999636c357302020-08-09 19:54:08 +020019
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020020deps: node_deps
21 mkdir -p dist
avm99963bbc88c62020-12-25 03:44:41 +010022
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020023clean_deps:
24 rm -rf node_modules
avm999636c357302020-08-09 19:54:08 +020025
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020026serve_chromium: deps
27 $(WEBPACK) --mode development --env browser_target=chromium --watch
28
29serve_chromium_mv3: deps
30 $(WEBPACK) --mode development --env browser_target=chromium_mv3 --watch
31
32serve_gecko: deps
33 $(WEBPACK) --mode development --env browser_target=gecko --watch
34
35release: release_chromium_stable release_chromium_beta release_gecko_stable
36
37release_chromium_stable: deps
38 $(WEBPACK) --mode production --env browser_target=chromium
39 $(RELEASE_SCRIPT) -c stable -b chromium
40 rm -rf dist/chromium
41
42release_chromium_beta: deps
Adrià Vilanova Martínezd4a4f3d2021-10-23 18:25:39 +020043 $(WEBPACK) --mode production --env browser_target=chromium_mv3
44 $(RELEASE_SCRIPT) -c beta -b chromium_mv3
45 rm -rf dist/chromium_mv3
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020046
Adrià Vilanova Martínez9aa29312022-01-16 02:42:46 +010047release_chromium_canary: deps
48 $(WEBPACK) --mode production --env browser_target=chromium_mv3 --env canary
49 $(RELEASE_SCRIPT) -c canary -b chromium_mv3
50 rm -rf dist/chromium_mv3
51
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020052release_gecko_stable: deps
53 $(WEBPACK) --mode production --env browser_target=gecko
54 $(RELEASE_SCRIPT) -c stable -b gecko
55 rm -rf dist/gecko
56
57# Target to build the extension for webext lint in the Zuul Check Pipeline.
58build_test_extension: deps
59 $(WEBPACK) --mode production --env browser_target=gecko
60 $(RELEASE_SCRIPT) -c stable -b gecko
61
62clean_releases:
avm999636c357302020-08-09 19:54:08 +020063 rm -rf out
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020064
Adrià Vilanova Martínezb47ec062023-01-15 17:43:26 +010065test:
66 $(JEST)
67
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020068clean: clean_deps clean_dist clean_releases
Adrià Vilanova Martínezb4af9752022-06-21 12:09:58 +020069
70# Manually trigger the nightly build. It also makes sure the tracked master branch is up to update
71trigger_nightly_build:
72 git fetch
73 zuul-client enqueue-ref --tenant gerrit --pipeline nightly-build --project infinitegforums --ref refs/heads/master --newrev $$(git rev-parse gerrit/master)