summaryrefslogtreecommitdiffstats
path: root/build/release.mk
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-08-10 09:11:55 -0700
committerChristopher Speller <crspeller@gmail.com>2017-09-06 23:11:58 -0700
commit7bc8e9a08dfde56387f946fdf5086252aa4d0491 (patch)
tree8cbe92b13980da65c7fbce371f5fe0e384fcbe66 /build/release.mk
parent77709ccdda86408d5135b8bc71462e2111992358 (diff)
downloadchat-7bc8e9a08dfde56387f946fdf5086252aa4d0491.tar.gz
chat-7bc8e9a08dfde56387f946fdf5086252aa4d0491.tar.bz2
chat-7bc8e9a08dfde56387f946fdf5086252aa4d0491.zip
Adding jenkinsfile for new build server.
Diffstat (limited to 'build/release.mk')
-rw-r--r--build/release.mk98
1 files changed, 98 insertions, 0 deletions
diff --git a/build/release.mk b/build/release.mk
new file mode 100644
index 000000000..af25b3901
--- /dev/null
+++ b/build/release.mk
@@ -0,0 +1,98 @@
+
+dist: | check-style test package
+
+build-linux:
+ @echo Build Linux amd64
+ env GOOS=linux GOARCH=amd64 $(GO) install $(GOFLAGS) $(GO_LINKER_FLAGS) ./cmd/platform
+
+build-osx:
+ @echo Build OSX amd64
+ env GOOS=darwin GOARCH=amd64 $(GO) install $(GOFLAGS) $(GO_LINKER_FLAGS) ./cmd/platform
+
+build-windows:
+ @echo Build Windows amd64
+ env GOOS=windows GOARCH=amd64 $(GO) install $(GOFLAGS) $(GO_LINKER_FLAGS) ./cmd/platform
+
+build: build-linux build-windows build-osx
+
+build-client:
+ @echo Building mattermost web app
+
+ cd $(BUILD_WEBAPP_DIR) && $(MAKE) build
+
+package:
+ @ echo Packaging mattermost
+
+ @# Remove any old files
+ rm -Rf $(DIST_ROOT)
+
+ @# Create needed directories
+ mkdir -p $(DIST_PATH)/bin
+ mkdir -p $(DIST_PATH)/logs
+
+ @# Resource directories
+ cp -RL config $(DIST_PATH)
+ cp -RL fonts $(DIST_PATH)
+ cp -RL templates $(DIST_PATH)
+ cp -RL i18n $(DIST_PATH)
+
+ @# Disable developer settings
+ sed -i'' -e 's|"ConsoleLevel": "DEBUG"|"ConsoleLevel": "INFO"|g' $(DIST_PATH)/config/config.json
+ sed -i'' -e 's|"SiteURL": "http://localhost:8065"|"SiteURL": ""|g' $(DIST_PATH)/config/config.json
+
+ @# Reset email sending to original configuration
+ sed -i'' -e 's|"SendEmailNotifications": true,|"SendEmailNotifications": false,|g' $(DIST_PATH)/config/config.json
+ sed -i'' -e 's|"FeedbackEmail": "test@example.com",|"FeedbackEmail": "",|g' $(DIST_PATH)/config/config.json
+ sed -i'' -e 's|"SMTPServer": "dockerhost",|"SMTPServer": "",|g' $(DIST_PATH)/config/config.json
+ sed -i'' -e 's|"SMTPPort": "2500",|"SMTPPort": "",|g' $(DIST_PATH)/config/config.json
+
+ @# Package webapp
+ mkdir -p $(DIST_PATH)/webapp/dist
+ cp -RL $(BUILD_WEBAPP_DIR)/dist $(DIST_PATH)/webapp
+
+ @# Help files
+ifeq ($(BUILD_ENTERPRISE_READY),true)
+ cp $(BUILD_ENTERPRISE_DIR)/ENTERPRISE-EDITION-LICENSE.txt $(DIST_PATH)
+else
+ cp build/MIT-COMPILED-LICENSE.md $(DIST_PATH)
+endif
+ cp NOTICE.txt $(DIST_PATH)
+ cp README.md $(DIST_PATH)
+
+ @# ----- PLATFORM SPECIFIC -----
+
+ @# Make osx package
+ @# Copy binary
+ifeq ($(BUILDER_GOOS_GOARCH),"darwin_amd64")
+ cp $(GOPATH)/bin/platform $(DIST_PATH)/bin # from native bin dir, not cross-compiled
+else
+ cp $(GOPATH)/bin/darwin_amd64/platform $(DIST_PATH)/bin # from cross-compiled bin dir
+endif
+ @# Package
+ tar -C dist -czf $(DIST_PATH)-$(BUILD_TYPE_NAME)-osx-amd64.tar.gz mattermost
+ @# Cleanup
+ rm -f $(DIST_PATH)/bin/platform
+
+ @# Make windows package
+ @# Copy binary
+ifeq ($(BUILDER_GOOS_GOARCH),"windows_amd64")
+ cp $(GOPATH)/bin/platform.exe $(DIST_PATH)/bin # from native bin dir, not cross-compiled
+else
+ cp $(GOPATH)/bin/windows_amd64/platform.exe $(DIST_PATH)/bin # from cross-compiled bin dir
+endif
+ @# Package
+ cd $(DIST_ROOT) && zip -9 -r -q -l mattermost-$(BUILD_TYPE_NAME)-windows-amd64.zip mattermost && cd ..
+ @# Cleanup
+ rm -f $(DIST_PATH)/bin/platform.exe
+
+ @# Make linux package
+ @# Copy binary
+ifeq ($(BUILDER_GOOS_GOARCH),"linux_amd64")
+ cp $(GOPATH)/bin/platform $(DIST_PATH)/bin # from native bin dir, not cross-compiled
+else
+ cp $(GOPATH)/bin/linux_amd64/platform $(DIST_PATH)/bin # from cross-compiled bin dir
+endif
+ @# Package
+ tar -C dist -czf $(DIST_PATH)-$(BUILD_TYPE_NAME)-linux-amd64.tar.gz mattermost
+ @# Don't clean up native package so dev machines will have an unzipped package available
+ @#rm -f $(DIST_PATH)/bin/platform