Makefile: add release-package target

Add Makefile target for building release packages. There are individual
targets `release-package-{linux,darwin,windows}` for specific OSses. The
`release-package` targets just runs all of them.

The `release-package-darwin` builds only for AMD64/x64 CPUs, since there
are no static builds fo FFmpeg for that platform:
https://evermeet.cx/ffmpeg/apple-silicon-arm

Manifest Task: T99411
This commit is contained in:
Sybren A. Stüvel 2022-07-25 16:53:25 +02:00
parent 45542ef84c
commit 858089a1c3

View File

@ -70,7 +70,7 @@ webapp-static: addon-packer
# When changing the base URL, also update the line # When changing the base URL, also update the line
# e.GET("/app/*", echo.WrapHandler(webAppHandler)) # e.GET("/app/*", echo.WrapHandler(webAppHandler))
# in `cmd/flamenco-manager/main.go` # in `cmd/flamenco-manager/main.go`
yarn --cwd web/app build --outDir ../static --base=/app/ yarn --cwd web/app build --outDir ../static --base=/app/ --logLevel warn
# yarn --cwd web/app build --outDir ../static --base=/app/ --minify false # yarn --cwd web/app build --outDir ../static --base=/app/ --minify false
./addon-packer -filename ${WEB_STATIC}/flamenco3-addon.zip ./addon-packer -filename ${WEB_STATIC}/flamenco3-addon.zip
@echo "Web app has been installed into ${WEB_STATIC}" @echo "Web app has been installed into ${WEB_STATIC}"
@ -192,7 +192,7 @@ test:
clean: clean:
@go clean -i -x @go clean -i -x
rm -f flamenco*-v* flamenco-manager flamenco-worker *.exe flamenco-*_race addon-packer rm -f flamenco*-v* flamenco-manager flamenco-worker *.exe flamenco-*_race addon-packer stresser
$(MAKE) clean-webapp-static $(MAKE) clean-webapp-static
clean-webapp-static: clean-webapp-static:
@ -250,21 +250,48 @@ tools-windows:
unzip -j $(FFMPEG_PACKAGE_WINDOWS) ffmpeg-5.0.1-essentials_build/bin/ffmpeg.exe -d . unzip -j $(FFMPEG_PACKAGE_WINDOWS) ffmpeg-5.0.1-essentials_build/bin/ffmpeg.exe -d .
mv ffmpeg.exe $(TOOLS)/ffmpeg-windows-amd64.exe mv ffmpeg.exe $(TOOLS)/ffmpeg-windows-amd64.exe
# https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-$(FFMPEG_VERSION)-essentials_build.zip RELEASE_PACKAGE_LINUX := dist/flamenco-${VERSION}-linux-amd64.tar.gz
# RELEASE_PACKAGE_DARWIN := dist/flamenco-${VERSION}-macos-amd64.tar.gz
# cd tools-download; RELEASE_PACKAGE_WINDOWS := dist/flamenco-${VERSION}-windows-amd64.zip
.PHONY: release-package
release-package:
$(MAKE) -s release-package-linux
$(MAKE) -s release-package-darwin
$(MAKE) -s release-package-windows
.PHONY: release-package-linux
package: flamenco-manager flamenco-worker addon-packer release-package-linux:
rm -rf dist-build $(MAKE) -s clean
mkdir -p dist-build $(MAKE) -s webapp-static
cp -a flamenco-manager flamenco-worker dist-build/ $(MAKE) -s flamenco-manager-without-webapp GOOS=linux GOARCH=amd64
cp -a web/static/flamenco3-addon.zip dist-build/ $(MAKE) -s flamenco-worker GOOS=linux GOARCH=amd64
cp -a README.md LICENSE dist-build/ $(MAKE) -s tools-linux
cd dist-build; zip -r -9 flamenco-${VERSION}.zip *
mkdir -p dist mkdir -p dist
mv dist-build/flamenco-${VERSION}.zip dist tar zcvf ${RELEASE_PACKAGE_LINUX} flamenco-manager flamenco-worker README.md LICENSE tools/*-linux*
rm -rf dist-build @echo "Done! Created ${RELEASE_PACKAGE_LINUX}"
.PHONY: release-package-darwin
release-package-darwin:
$(MAKE) -s clean
$(MAKE) -s webapp-static
$(MAKE) -s flamenco-manager-without-webapp GOOS=darwin GOARCH=amd64
$(MAKE) -s flamenco-worker GOOS=darwin GOARCH=amd64
$(MAKE) -s tools-darwin
mkdir -p dist
tar zcvf ${RELEASE_PACKAGE_DARWIN} flamenco-manager flamenco-worker README.md LICENSE tools/*-darwin*
@echo "Done! Created ${RELEASE_PACKAGE_DARWIN}"
.PHONY: release-package-windows
release-package-windows:
$(MAKE) -s clean
$(MAKE) -s webapp-static
$(MAKE) -s flamenco-manager-without-webapp GOOS=windows GOARCH=amd64
$(MAKE) -s flamenco-worker GOOS=windows GOARCH=amd64
$(MAKE) -s tools-windows
mkdir -p dist
rm -f ${RELEASE_PACKAGE_WINDOWS}
zip -r -9 ${RELEASE_PACKAGE_WINDOWS} flamenco-manager.exe flamenco-worker.exe README.md LICENSE tools/*-windows*
@echo "Done! Created ${RELEASE_PACKAGE_WINDOWS}"
.PHONY: application version flamenco-manager flamenco-worker flamenco-manager_race flamenco-worker_race webapp webapp-static generate generate-go generate-py with-deps swagger-ui list-embedded test clean clean-webapp-static .PHONY: application version flamenco-manager flamenco-worker flamenco-manager_race flamenco-worker_race webapp webapp-static generate generate-go generate-py with-deps swagger-ui list-embedded test clean clean-webapp-static