blob: a2c4b314acbf5911d5c00af619021f3491336a64 [file] [log] [blame]
Adrià Vilanova Martínez2c6f3282024-03-20 18:59:55 +01001.PHONY: node_deps clean_dist deps clean_deps lit_localize_extract lit_localize_build lit_localize_all 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ínezd7c19de2024-09-27 23:26:01 +02004JEST := node ./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:
Adrià Vilanova Martínez2e464f32024-05-31 20:02:09 +020015 pnpm install --frozen-lockfile
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íneza03d03a2023-03-11 23:30:07 +010026lit_localize_extract:
27 npx lit-localize extract
28
29lit_localize_build:
30 npx lit-localize build
31
32lit_localize_all: lit_localize_extract lit_localize_build
33
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020034serve_chromium_mv3: deps
35 $(WEBPACK) --mode development --env browser_target=chromium_mv3 --watch
36
37serve_gecko: deps
38 $(WEBPACK) --mode development --env browser_target=gecko --watch
39
40release: release_chromium_stable release_chromium_beta release_gecko_stable
41
42release_chromium_stable: deps
Adrià Vilanova Martínez2c6f3282024-03-20 18:59:55 +010043 $(WEBPACK) --mode production --env browser_target=chromium_mv3
44 $(RELEASE_SCRIPT) -c stable -b chromium_mv3
45 rm -rf dist/chromium_mv3
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020046
47release_chromium_beta: deps
Adrià Vilanova Martínezd4a4f3d2021-10-23 18:25:39 +020048 $(WEBPACK) --mode production --env browser_target=chromium_mv3
49 $(RELEASE_SCRIPT) -c beta -b chromium_mv3
50 rm -rf dist/chromium_mv3
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020051
Adrià Vilanova Martínez9aa29312022-01-16 02:42:46 +010052release_chromium_canary: deps
53 $(WEBPACK) --mode production --env browser_target=chromium_mv3 --env canary
54 $(RELEASE_SCRIPT) -c canary -b chromium_mv3
55 rm -rf dist/chromium_mv3
56
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020057release_gecko_stable: deps
58 $(WEBPACK) --mode production --env browser_target=gecko
59 $(RELEASE_SCRIPT) -c stable -b gecko
60 rm -rf dist/gecko
61
62# Target to build the extension for webext lint in the Zuul Check Pipeline.
63build_test_extension: deps
64 $(WEBPACK) --mode production --env browser_target=gecko
65 $(RELEASE_SCRIPT) -c stable -b gecko
66
67clean_releases:
avm999636c357302020-08-09 19:54:08 +020068 rm -rf out
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020069
Adrià Vilanova Martínezb47ec062023-01-15 17:43:26 +010070test:
71 $(JEST)
72
Adrià Vilanova Martínez3465e772021-07-11 19:18:41 +020073clean: clean_deps clean_dist clean_releases
Adrià Vilanova Martínezb4af9752022-06-21 12:09:58 +020074
75# Manually trigger the nightly build. It also makes sure the tracked master branch is up to update
76trigger_nightly_build:
77 git fetch
78 zuul-client enqueue-ref --tenant gerrit --pipeline nightly-build --project infinitegforums --ref refs/heads/master --newrev $$(git rev-parse gerrit/master)