14
14
15
15
# This is the "normal" part of the Makefile
16
16
17
+ TAR := $(shell hash bsdtar > /dev/null 2>&1 && echo "bsdtar --no-xattrs" || echo "tar" )
18
+
17
19
DIST := dist
18
20
DIST_DIRS := $(DIST ) /binaries $(DIST ) /release
19
21
IMPORT := code.gitea.io/gitea
@@ -93,7 +95,7 @@ GO_PACKAGES ?= $(filter-out code.gitea.io/gitea/models/migrations code.gitea.io/
93
95
94
96
FOMANTIC_CONFIGS := semantic.json web_src/fomantic/theme.config.less web_src/fomantic/_site/globals/site.variables
95
97
FOMANTIC_DEST := web_src/fomantic/build/semantic.js web_src/fomantic/build/semantic.css
96
- FOMANTIC_DEST_DIR := web_src/fomantic/build
98
+ FOMANTIC_WORK_DIR := web_src/fomantic
97
99
98
100
WEBPACK_SOURCES := $(shell find web_src/js web_src/less -type f)
99
101
WEBPACK_CONFIGS := webpack.config.js
@@ -642,14 +644,16 @@ release-compress: | $(DIST_DIRS)
642
644
cd $(DIST ) /release/; for file in ` find . -type f -name " *" ` ; do echo " compressing $$ {file}" && gxz -k -9 $$ {file}; done ;
643
645
644
646
.PHONY : release-sources
645
- release-sources : | $(DIST_DIRS ) node_modules
647
+ release-sources : | $(DIST_DIRS ) npm-cache
646
648
echo $(VERSION ) > $(STORED_VERSION_FILE )
647
- tar --exclude=./$(DIST ) --exclude=./.git --exclude=./$(MAKE_EVIDENCE_DIR ) --exclude=./node_modules/.cache --exclude=./$(AIR_TMP_DIR ) -czf $(DIST ) /release/gitea-src-$(VERSION ) .tar.gz .
649
+ $(eval EXCL := --exclude=$(shell [ ! "$(TAR ) " = "tar" ] && echo "^" ) ./)
650
+ $(eval EXCL_RECURSIVE := --exclude=)
651
+ $(TAR ) $(EXCL )$(DIST ) $(EXCL ) .git $(EXCL )$(MAKE_EVIDENCE_DIR ) $(EXCL_RECURSIVE ) node_modules $(EXCL )$(AIR_TMP_DIR ) -czf $(DIST ) /release/gitea-src-$(VERSION ) .tar.gz .
648
652
rm -f $(STORED_VERSION_FILE )
649
653
650
654
.PHONY : release-docs
651
655
release-docs : | $(DIST_DIRS ) docs
652
- tar -czf $(DIST ) /release/gitea-docs-$(VERSION ) .tar.gz -C ./docs/public .
656
+ $( TAR ) -czf $(DIST ) /release/gitea-docs-$(VERSION ) .tar.gz -C ./docs/public .
653
657
654
658
.PHONY : docs
655
659
docs :
@@ -662,6 +666,25 @@ node_modules: package-lock.json
662
666
npm install --no-save
663
667
@touch node_modules
664
668
669
+ .PHONY : npm-cache
670
+ npm-cache : .npm-cache $(FOMANTIC_WORK_DIR ) /node_modules/fomantic-ui
671
+
672
+ .npm-cache : package-lock.json
673
+ rm -rf .npm-cache
674
+ $(eval ESBUILD_VERSION := `node -p "require('./package-lock.json') .dependencies.esbuild.version" ` )
675
+ npm config --userconfig=.npmrc set cache=.npm-cache
676
+ rm -rf node_modules && npm install --no-save
677
+ npm config --userconfig=$(FOMANTIC_WORK_DIR ) /.npmrc set cache=../../.npm-cache
678
+ echo esbuild-{darwin-64,linux-{arm,arm64,32,64},windows-{32,64}}@$(ESBUILD_VERSION ) | tr " " " \n" | xargs -n 1 -P 4 npm cache add
679
+ rm -rf $(FOMANTIC_WORK_DIR ) /node_modules
680
+ @touch .npm-cache
681
+
682
+ .PHONY : npm-uncache
683
+ npm-uncache :
684
+ rm -rf .npm-cache
685
+ npm config --userconfig=$(FOMANTIC_WORK_DIR ) /.npmrc rm cache
686
+ npm config --userconfig=.npmrc rm cache
687
+
665
688
.PHONY : npm-update
666
689
npm-update : node-check | node_modules
667
690
npx updates -cu
@@ -672,14 +695,22 @@ npm-update: node-check | node_modules
672
695
.PHONY : fomantic
673
696
fomantic : $(FOMANTIC_DEST )
674
697
675
- $(FOMANTIC_DEST ) : $(FOMANTIC_CONFIGS ) | node_modules
676
- @if [ ! -d node_modules/fomantic-ui ]; then \
677
- npm install --no-save --no-package-lock
[email protected] ; \
678
- fi
679
- rm -rf $(FOMANTIC_DEST_DIR )
680
- cp -f web_src/fomantic/theme.config.less node_modules/fomantic-ui/src/theme.config
681
- cp -rf web_src/fomantic/_site/* node_modules/fomantic-ui/src/_site/
682
- npx gulp -f node_modules/fomantic-ui/gulpfile.js build
698
+ $(FOMANTIC_WORK_DIR ) /node_modules/fomantic-ui :
699
+ ln -sf ../../semantic.json $(FOMANTIC_WORK_DIR )
700
+ cd $(FOMANTIC_WORK_DIR ) ; \
701
+ rm -rf node_modules && mkdir node_modules && \
702
+ npm install fomantic-ui; \
703
+ rm -f semantic.json
704
+ @touch $(FOMANTIC_WORK_DIR ) /node_modules
705
+
706
+ $(FOMANTIC_DEST ) : $(FOMANTIC_CONFIGS ) $(FOMANTIC_WORK_DIR ) /node_modules/fomantic-ui
707
+ ln -sf ../../semantic.json $(FOMANTIC_WORK_DIR )
708
+ rm -rf $(FOMANTIC_WORK_DIR ) /build
709
+ cd $(FOMANTIC_WORK_DIR ) ; \
710
+ cp -f theme.config.less node_modules/fomantic-ui/src/theme.config; \
711
+ cp -rf _site node_modules/fomantic-ui/src/; \
712
+ npx gulp -f node_modules/fomantic-ui/gulpfile.js build; \
713
+ rm -f semantic.json
683
714
@touch $(FOMANTIC_DEST )
684
715
685
716
.PHONY : webpack
0 commit comments