-
Notifications
You must be signed in to change notification settings - Fork 1.9k
/
Copy pathMakefile
92 lines (78 loc) · 4.32 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
TURBO_VERSION = $(shell cat ../version.txt | sed -n '1 p')
TURBO_TAG = $(shell cat ../version.txt | sed -n '2 p')
CLI_DIR = $(shell pwd)
# This only builds JS packages
build:
cd $(CLI_DIR)/../ && turbo build copy-schema \
--filter=create-turbo \
--filter=@turbo/codemod \
--filter=turbo-ignore \
--filter=@turbo/workspaces \
--filter=@turbo/gen \
--filter=eslint-plugin-turbo \
--filter=eslint-config-turbo \
--filter=@turbo/types
.PHONY: stage-release
stage-release:
echo "Version: $(TURBO_VERSION)"
echo "Tag: $(TURBO_TAG)"
cat $(CLI_DIR)/../version.txt
git diff -- $(CLI_DIR)/../version.txt
git status
@test "" = "`git cherry`" || (echo "Refusing to publish with unpushed commits" && false)
# Stop if versions are not updated.
@test "" != "`git diff -- $(CLI_DIR)/../version.txt`" || (echo "Refusing to publish with unupdated version.txt" && false)
# Prepare the packages.
cd $(CLI_DIR)/../packages/turbo && pnpm version "$(TURBO_VERSION)" --allow-same-version
cd $(CLI_DIR)/../packages/create-turbo && pnpm version "$(TURBO_VERSION)" --allow-same-version
cd $(CLI_DIR)/../packages/turbo-codemod && pnpm version "$(TURBO_VERSION)" --allow-same-version
cd $(CLI_DIR)/../packages/turbo-ignore && pnpm version "$(TURBO_VERSION)" --allow-same-version
cd $(CLI_DIR)/../packages/turbo-workspaces && pnpm version "$(TURBO_VERSION)" --allow-same-version
cd $(CLI_DIR)/../packages/turbo-gen && pnpm version "$(TURBO_VERSION)" --allow-same-version
cd $(CLI_DIR)/../packages/eslint-plugin-turbo && pnpm version "$(TURBO_VERSION)" --allow-same-version
cd $(CLI_DIR)/../packages/eslint-config-turbo && pnpm version "$(TURBO_VERSION)" --allow-same-version
cd $(CLI_DIR)/../packages/turbo-types && pnpm version "$(TURBO_VERSION)" --allow-same-version
git checkout -b staging-$(TURBO_VERSION)
git commit -anm "publish $(TURBO_VERSION) to registry"
git tag "v$(TURBO_VERSION)"
git push origin staging-$(TURBO_VERSION) --tags --force
.PHONY: publish-turbo
publish-turbo: build
echo "Version: $(TURBO_VERSION)"
echo "Tag: $(TURBO_TAG)"
# Include the patch in the log.
git format-patch HEAD~1 --stdout | cat
npm config set --location=project "//registry.npmjs.org/:_authToken" $(NPM_TOKEN)
# Publishes the native npm modules.
turbo release-native -- $(SKIP_PUBLISH)
# Split packing from the publish step so that npm locates the correct .npmrc file.
cd $(CLI_DIR)/../packages/turbo && pnpm pack --pack-destination=$(CLI_DIR)/../
cd $(CLI_DIR)/../packages/create-turbo && pnpm pack --pack-destination=$(CLI_DIR)/../
cd $(CLI_DIR)/../packages/turbo-codemod && pnpm pack --pack-destination=$(CLI_DIR)/../
cd $(CLI_DIR)/../packages/turbo-ignore && pnpm pack --pack-destination=$(CLI_DIR)/../
cd $(CLI_DIR)/../packages/turbo-workspaces && pnpm pack --pack-destination=$(CLI_DIR)/../
cd $(CLI_DIR)/../packages/turbo-gen && pnpm pack --pack-destination=$(CLI_DIR)/../
cd $(CLI_DIR)/../packages/eslint-plugin-turbo && pnpm pack --pack-destination=$(CLI_DIR)/../
cd $(CLI_DIR)/../packages/eslint-config-turbo && pnpm pack --pack-destination=$(CLI_DIR)/../
cd $(CLI_DIR)/../packages/turbo-types && pnpm pack --pack-destination=$(CLI_DIR)/../
ifneq ($(SKIP_PUBLISH),--skip-publish)
# Publish the remaining JS packages in order to avoid race conditions.
cd $(CLI_DIR)/../
npm publish -ddd --tag $(TURBO_TAG) $(CLI_DIR)/../turbo-$(TURBO_VERSION).tgz
npm publish -ddd --tag $(TURBO_TAG) $(CLI_DIR)/../create-turbo-$(TURBO_VERSION).tgz
npm publish -ddd --tag $(TURBO_TAG) $(CLI_DIR)/../turbo-codemod-$(TURBO_VERSION).tgz
npm publish -ddd --tag $(TURBO_TAG) $(CLI_DIR)/../turbo-ignore-$(TURBO_VERSION).tgz
npm publish -ddd --tag $(TURBO_TAG) $(CLI_DIR)/../turbo-workspaces-$(TURBO_VERSION).tgz
npm publish -ddd --tag $(TURBO_TAG) $(CLI_DIR)/../turbo-gen-$(TURBO_VERSION).tgz
npm publish -ddd --tag $(TURBO_TAG) $(CLI_DIR)/../eslint-plugin-turbo-$(TURBO_VERSION).tgz
npm publish -ddd --tag $(TURBO_TAG) $(CLI_DIR)/../eslint-config-turbo-$(TURBO_VERSION).tgz
npm publish -ddd --tag $(TURBO_TAG) $(CLI_DIR)/../turbo-types-$(TURBO_VERSION).tgz
endif
# use target fixture-<some directory under turborepo-tests/integration/fixtures> to set up the testbed directory
.PHONY=fixture-%
fixture-%:
$(eval $@_FIXTURE := $(@:fixture-%=%))
@echo "fixture setup $($@_FIXTURE)"
rm -rf testbed
mkdir -p testbed
../turborepo-tests/helpers/setup_integration_test.sh ./testbed $($@_FIXTURE)