github.com/xzl8028/xenia-server@v0.0.0-20190809101854-18450a97da63/build/release.mk (about)

     1  
     2  dist: | check-style test package
     3  
     4  build-linux:
     5  	@echo Build Linux amd64
     6  	env GOOS=linux GOARCH=amd64 $(GO) install -i $(GOFLAGS) -ldflags '$(LDFLAGS)' ./...
     7  
     8  build-osx:
     9  	@echo Build OSX amd64
    10  	env GOOS=darwin GOARCH=amd64 $(GO) install -i $(GOFLAGS) -ldflags '$(LDFLAGS)' ./...
    11  
    12  build-windows:
    13  	@echo Build Windows amd64
    14  	env GOOS=windows GOARCH=amd64 $(GO) install -i $(GOFLAGS) -ldflags '$(LDFLAGS)' ./...
    15  
    16  build: build-linux build-windows build-osx
    17  
    18  build-client:
    19  	@echo Building xenia web app
    20  
    21  	cd $(BUILD_WEBAPP_DIR) && $(MAKE) build
    22  
    23  package:
    24  	@ echo Packaging xenia
    25  
    26  	@# Remove any old files
    27  	rm -Rf $(DIST_ROOT)
    28  
    29  	@# Create needed directories
    30  	mkdir -p $(DIST_PATH)/bin
    31  	mkdir -p $(DIST_PATH)/logs
    32  	mkdir -p $(DIST_PATH)/prepackaged_plugins
    33  
    34  	@# Resource directories
    35  	mkdir -p $(DIST_PATH)/config
    36  	cp -L config/README.md $(DIST_PATH)/config
    37  	OUTPUT_CONFIG=$(PWD)/$(DIST_PATH)/config/config.json go generate ./config
    38  	cp -RL fonts $(DIST_PATH)
    39  	cp -RL templates $(DIST_PATH)
    40  	cp -RL i18n $(DIST_PATH)
    41  
    42  	@# Disable developer settings
    43  	sed -i'' -e 's|"ConsoleLevel": "DEBUG"|"ConsoleLevel": "INFO"|g' $(DIST_PATH)/config/config.json
    44  	sed -i'' -e 's|"SiteURL": "http://localhost:8065"|"SiteURL": ""|g' $(DIST_PATH)/config/config.json
    45  
    46  	@# Reset email sending to original configuration
    47  	sed -i'' -e 's|"SendEmailNotifications": true,|"SendEmailNotifications": false,|g' $(DIST_PATH)/config/config.json
    48  	sed -i'' -e 's|"FeedbackEmail": "test@example.com",|"FeedbackEmail": "",|g' $(DIST_PATH)/config/config.json
    49  	sed -i'' -e 's|"ReplyToAddress": "test@example.com",|"ReplyToAddress": "",|g' $(DIST_PATH)/config/config.json
    50  	sed -i'' -e 's|"SMTPServer": "dockerhost",|"SMTPServer": "",|g' $(DIST_PATH)/config/config.json
    51  	sed -i'' -e 's|"SMTPPort": "2500",|"SMTPPort": "",|g' $(DIST_PATH)/config/config.json
    52  
    53  	@# Package webapp
    54  	mkdir -p $(DIST_PATH)/client
    55  	cp -RL $(BUILD_WEBAPP_DIR)/dist/* $(DIST_PATH)/client
    56  
    57  	@# Help files
    58  ifeq ($(BUILD_ENTERPRISE_READY),true)
    59  	cp $(BUILD_ENTERPRISE_DIR)/ENTERPRISE-EDITION-LICENSE.txt $(DIST_PATH)
    60  else
    61  	cp build/MIT-COMPILED-LICENSE.md $(DIST_PATH)
    62  endif
    63  	cp NOTICE.txt $(DIST_PATH)
    64  	cp README.md $(DIST_PATH)
    65  
    66  	@# Download prepackaged plugins
    67  	mkdir -p tmpprepackaged
    68  	@cd tmpprepackaged && for plugin_package in $(PLUGIN_PACKAGES) ; do \
    69  		curl -O -L https://plugins-store.test.xenia.com/release/$$plugin_package.tar.gz; \
    70  	done
    71  
    72  	@# ----- PLATFORM SPECIFIC -----
    73  
    74  	@# Make osx package
    75  	@# Copy binary
    76  ifeq ($(BUILDER_GOOS_GOARCH),"darwin_amd64")
    77  	cp $(GOPATH)/bin/xenia $(DIST_PATH)/bin # from native bin dir, not cross-compiled
    78  	cp $(GOPATH)/bin/platform $(DIST_PATH)/bin # from native bin dir, not cross-compiled
    79  else
    80  	cp $(GOPATH)/bin/darwin_amd64/xenia $(DIST_PATH)/bin # from cross-compiled bin dir
    81  	cp $(GOPATH)/bin/darwin_amd64/platform $(DIST_PATH)/bin # from cross-compiled bin dir
    82  endif
    83  	@# Strip and prepackage plugins
    84  	@for plugin_package in $(PLUGIN_PACKAGES) ; do \
    85  		cat tmpprepackaged/$$plugin_package.tar.gz | gunzip | tar --wildcards --delete "*windows*" --delete "*linux*" | gzip  > $(DIST_PATH)/prepackaged_plugins/$$plugin_package.tar.gz; \
    86  	done
    87  	@# Package
    88  	tar -C dist -czf $(DIST_PATH)-$(BUILD_TYPE_NAME)-osx-amd64.tar.gz xenia
    89  	@# Cleanup
    90  	rm -f $(DIST_PATH)/bin/xenia
    91  	rm -f $(DIST_PATH)/bin/platform
    92  	rm -f $(DIST_PATH)/prepackaged_plugins/*
    93  
    94  	@# Make windows package
    95  	@# Copy binary
    96  ifeq ($(BUILDER_GOOS_GOARCH),"windows_amd64")
    97  	cp $(GOPATH)/bin/xenia.exe $(DIST_PATH)/bin # from native bin dir, not cross-compiled
    98  	cp $(GOPATH)/bin/platform.exe $(DIST_PATH)/bin # from native bin dir, not cross-compiled
    99  else
   100  	cp $(GOPATH)/bin/windows_amd64/xenia.exe $(DIST_PATH)/bin # from cross-compiled bin dir
   101  	cp $(GOPATH)/bin/windows_amd64/platform.exe $(DIST_PATH)/bin # from cross-compiled bin dir
   102  endif
   103  	@# Strip and prepackage plugins
   104  	@for plugin_package in $(PLUGIN_PACKAGES) ; do \
   105  		cat tmpprepackaged/$$plugin_package.tar.gz | gunzip | tar --wildcards --delete "*darwin*" --delete "*linux*" | gzip  > $(DIST_PATH)/prepackaged_plugins/$$plugin_package.tar.gz; \
   106  	done
   107  	@# Package
   108  	cd $(DIST_ROOT) && zip -9 -r -q -l xenia-$(BUILD_TYPE_NAME)-windows-amd64.zip xenia && cd ..
   109  	@# Cleanup
   110  	rm -f $(DIST_PATH)/bin/xenia.exe
   111  	rm -f $(DIST_PATH)/bin/platform.exe
   112  	rm -f $(DIST_PATH)/prepackaged_plugins/*
   113  
   114  	@# Make linux package
   115  	@# Copy binary
   116  ifeq ($(BUILDER_GOOS_GOARCH),"linux_amd64")
   117  	cp $(GOPATH)/bin/xenia $(DIST_PATH)/bin # from native bin dir, not cross-compiled
   118  	cp $(GOPATH)/bin/platform $(DIST_PATH)/bin # from native bin dir, not cross-compiled
   119  else
   120  	cp $(GOPATH)/bin/linux_amd64/xenia $(DIST_PATH)/bin # from cross-compiled bin dir
   121  	cp $(GOPATH)/bin/linux_amd64/platform $(DIST_PATH)/bin # from cross-compiled bin dir
   122  endif
   123  	@# Strip and prepackage plugins
   124  	@for plugin_package in $(PLUGIN_PACKAGES) ; do \
   125  		cat tmpprepackaged/$$plugin_package.tar.gz | gunzip | tar --wildcards --delete "*windows*" --delete "*darwin*" | gzip  > $(DIST_PATH)/prepackaged_plugins/$$plugin_package.tar.gz; \
   126  	done
   127  	@# Package
   128  	tar -C dist -czf $(DIST_PATH)-$(BUILD_TYPE_NAME)-linux-amd64.tar.gz xenia
   129  	@# Don't clean up native package so dev machines will have an unzipped package available
   130  	@#rm -f $(DIST_PATH)/bin/xenia
   131  
   132  	rm -rf tmpprepackaged