2023-05-13 13:54:40 +00:00
- i n c l u d e . e n v
2023-08-01 10:35:48 +00:00
PKG := projects.blender.org/studio/flamenco
2022-07-25 12:45:06 +00:00
# To update the version number in all the relevant places, update the VERSION
# variable below and run `make update-version`.
2024-06-25 15:53:16 +00:00
VERSION := 3.6-alpha2
2023-11-06 10:56:48 +00:00
# "alpha", "beta", or "release".
2024-04-24 15:31:44 +00:00
RELEASE_CYCLE := alpha
2022-07-25 12:45:06 +00:00
2022-08-31 12:27:53 +00:00
# _GIT_DESCRIPTION_OR_TAG is either something like '16-123abc' (when we're 16
# commits since the last tag) or it's something like `v3.0-beta2` (when exactly
# on a tagged version).
2023-07-24 13:58:45 +00:00
_GIT_DESCRIPTION_OR_TAG := $( subst v${ VERSION } -,,$( shell git describe --tag --dirty --always --abbrev= 9) )
2022-08-31 12:27:53 +00:00
# In the above cases, GITHASH is either `16-123abc` (in the same case above) or
# `123abc` (when the tag matches the current commit exactly) or `dirty` (when
# the tag matches the current commit exactly, and there are subsequent
# uncommitted changes). This is done to prevent repetition of the same tag
# in the "extended version" of Flamenco, which combines ${VERSION} and
# ${GITHASH}.
2023-07-24 13:58:45 +00:00
GITHASH := $( subst v${ VERSION } ,$( shell git rev-parse --short= 9 HEAD) ,${ _GIT_DESCRIPTION_OR_TAG } )
2023-08-01 11:56:15 +00:00
i f e q ( $ { G I T H A S H } , d i r t y )
GITHASH := $( shell git rev-parse --short= 9 HEAD)
e n d i f
2022-08-31 12:27:53 +00:00
2023-04-04 10:25:47 +00:00
LDFLAGS := ${ LDFLAGS } -X ${ PKG } /internal/appinfo.ApplicationVersion= ${ VERSION } \
2022-07-28 13:10:27 +00:00
-X ${ PKG } /internal/appinfo.ApplicationGitHash= ${ GITHASH } \
-X ${ PKG } /internal/appinfo.ReleaseCycle= ${ RELEASE_CYCLE }
2022-01-03 14:05:10 +00:00
BUILD_FLAGS = -ldflags= " ${ LDFLAGS } "
2022-04-01 14:40:54 +00:00
# Package name of the generated Python/JavaScript code for the Flamenco API.
2022-03-10 14:47:21 +00:00
PY_API_PKG_NAME = flamenco.manager
2022-04-01 14:40:54 +00:00
JS_API_PKG_NAME = manager
2022-03-10 14:47:21 +00:00
2022-06-30 15:41:36 +00:00
# The directory that will contain the built webapp files, and some other files
# that will be served as static files by the Flamenco Manager web server.
#
# WARNING: THIS IS USED IN `rm -rf ${WEB_STATIC}`, DO NOT MAKE EMPTY OR SET TO
# ANY ABSOLUTE PATH.
WEB_STATIC = web/static
2024-05-16 10:36:42 +00:00
# The Hugo package + its version.
2024-01-25 11:11:04 +00:00
HUGO_PKG := github.com/gohugoio/hugo@v0.121.2
2023-09-08 13:39:20 +00:00
2022-02-28 12:01:13 +00:00
# Prevent any dependency that requires a C compiler, i.e. only work with pure-Go libraries.
2022-02-24 10:37:02 +00:00
export CGO_ENABLED = 0
2022-01-03 14:05:10 +00:00
all : application
2022-01-24 13:27:25 +00:00
# Install generators and build the software.
with-deps :
2022-04-09 09:50:24 +00:00
go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@v1.9.0
go install github.com/golang/mock/mockgen@v1.6.0
2022-02-25 15:08:08 +00:00
$( MAKE) application
2022-01-24 13:27:25 +00:00
2023-09-07 10:07:20 +00:00
vet :
go vet ./...
go run golang.org/x/vuln/cmd/govulncheck@latest ./...
2022-06-27 13:50:47 +00:00
application : webapp flamenco -manager flamenco -worker
2022-02-17 10:11:42 +00:00
2022-02-28 12:01:13 +00:00
flamenco-manager :
2022-06-27 12:50:54 +00:00
$( MAKE) webapp-static
2022-02-28 12:01:13 +00:00
go build -v ${ BUILD_FLAGS } ${ PKG } /cmd/flamenco-manager
2022-02-17 10:11:42 +00:00
2022-07-15 12:07:54 +00:00
.PHONY : flamenco -manager -without -webapp
flamenco-manager-without-webapp :
go build -v ${ BUILD_FLAGS } ${ PKG } /cmd/flamenco-manager
2022-02-28 12:01:13 +00:00
flamenco-worker :
go build -v ${ BUILD_FLAGS } ${ PKG } /cmd/flamenco-worker
2022-02-17 10:11:42 +00:00
2023-11-27 04:43:43 +00:00
# NOTE: these database migration commands are just for reference / debugging /
# development purposes. Flamenco Manager and Worker each perform their own
# migration at startup. In normal use, you'll never need those commands. This is
# also why the `with-deps` target doesn't install the Goose CLI program.
2023-12-29 10:36:16 +00:00
#
# Run `go install github.com/pressly/goose/v3/cmd/goose@latest` to install.
2023-11-27 04:43:43 +00:00
db-migrate-status :
goose -dir ./internal/manager/persistence/migrations/ sqlite3 flamenco-manager.sqlite status
db-migrate-up :
goose -dir ./internal/manager/persistence/migrations/ sqlite3 flamenco-manager.sqlite up
db-migrate-down :
goose -dir ./internal/manager/persistence/migrations/ sqlite3 flamenco-manager.sqlite down
.PHONY : db -migrate -status db -migrate -up db -migrate -down
2022-07-15 11:55:59 +00:00
.PHONY : stresser
2022-07-15 09:45:21 +00:00
stresser :
go build -v ${ BUILD_FLAGS } ${ PKG } /cmd/stresser
2023-07-10 12:10:15 +00:00
.PHONY : job -creator
job-creator :
go build -v ${ BUILD_FLAGS } ${ PKG } /cmd/job-creator
2023-08-23 13:21:14 +00:00
flamenco-addon.zip : addon -packer
./addon-packer -filename ./flamenco-addon.zip
2022-06-27 13:50:47 +00:00
addon-packer : cmd /addon -packer /addon -packer .go
go build -v ${ BUILD_FLAGS } ${ PKG } /cmd/addon-packer
2022-04-21 10:51:55 +00:00
flamenco-manager_race :
CGO_ENABLED = 1 go build -race -o $@ -v ${ BUILD_FLAGS } ${ PKG } /cmd/flamenco-manager
flamenco-worker_race :
CGO_ENABLED = 1 go build -race -o $@ -v ${ BUILD_FLAGS } ${ PKG } /cmd/flamenco-worker
2023-02-07 14:47:11 +00:00
.PHONY : shaman -checkout -id -setter
shaman-checkout-id-setter :
go build -v ${ BUILD_FLAGS } ${ PKG } /cmd/shaman-checkout-id-setter
2022-04-29 10:30:02 +00:00
webapp :
yarn --cwd web/app install
2022-06-27 13:50:47 +00:00
webapp-static : addon -packer
2022-06-30 15:41:36 +00:00
$( MAKE) clean-webapp-static
2022-06-27 12:50:54 +00:00
# When changing the base URL, also update the line
2022-07-05 09:51:05 +00:00
# e.GET("/app/*", echo.WrapHandler(webAppHandler))
2022-06-27 12:50:54 +00:00
# in `cmd/flamenco-manager/main.go`
2024-02-02 21:37:28 +00:00
MSYS2_ARG_CONV_EXCL = "*" yarn --cwd web/app build --outDir ../static --base= /app/ --logLevel warn
2022-07-05 09:51:05 +00:00
# yarn --cwd web/app build --outDir ../static --base=/app/ --minify false
2023-08-01 11:05:02 +00:00
./addon-packer -filename ${ WEB_STATIC } /flamenco-addon.zip
2022-06-30 15:41:36 +00:00
@echo " Web app has been installed into ${ WEB_STATIC } "
2022-06-27 12:50:54 +00:00
2022-07-25 12:45:06 +00:00
generate :
$( MAKE) generate-go
$( MAKE) generate-py
$( MAKE) generate-js
2022-03-10 14:47:21 +00:00
generate-go :
2022-02-25 15:08:08 +00:00
go generate ./pkg/api/...
2022-02-24 10:35:54 +00:00
go generate ./internal/...
2022-03-03 10:49:26 +00:00
# The generators always produce UNIX line-ends. This creates false file
# modifications with Git. Convert them to DOS line-ends to avoid this.
i f e q ( $( OS ) , W i n d o w s _ N T )
git status --porcelain | grep '^ M .*.gen.go' | cut -d' ' -f3 | xargs unix2dos --keepdate
e n d i f
2022-01-28 14:31:39 +00:00
2022-03-10 14:47:21 +00:00
generate-py :
# The generator doesn't consistently overwrite existing files, nor does it
# remove no-longer-generated files.
rm -rf addon/flamenco/manager
2022-04-01 14:40:54 +00:00
# See https://openapi-generator.tech/docs/generators/python for the options.
2022-03-10 14:47:21 +00:00
java -jar addon/openapi-generator-cli.jar \
generate \
2022-05-19 13:22:37 +00:00
-i pkg/api/flamenco-openapi.yaml \
2022-03-10 14:47:21 +00:00
-g python \
-o addon/ \
--package-name " ${ PY_API_PKG_NAME } " \
2022-07-25 12:45:06 +00:00
--http-user-agent " Flamenco/ ${ VERSION } (Blender add-on) " \
2022-03-10 14:47:21 +00:00
-p generateSourceCodeOnly = true \
-p projectName = Flamenco \
2022-07-25 12:45:06 +00:00
-p packageVersion = " ${ VERSION } " > .openapi-generator-py.log
2022-03-10 14:47:21 +00:00
# The generator outputs files so that we can write our own tests. We don't,
# though, so it's better to just remove those placeholders.
rm -rf addon/flamenco/manager/test
2022-07-16 09:12:41 +00:00
# The generators always produce UNIX line-ends. This creates false file
# modifications with Git. Convert them to DOS line-ends to avoid this.
i f e q ( $( OS ) , W i n d o w s _ N T )
git status --porcelain | grep '^ M addon/flamenco/manager' | cut -d' ' -f3 | xargs unix2dos --keepdate
e n d i f
2022-03-10 14:47:21 +00:00
2022-04-01 14:40:54 +00:00
generate-js :
# The generator doesn't consistently overwrite existing files, nor does it
# remove no-longer-generated files.
2022-04-12 10:34:49 +00:00
rm -rf web/app/src/manager-api
rm -rf web/_tmp-manager-api-javascript
2022-04-01 14:40:54 +00:00
# See https://openapi-generator.tech/docs/generators/javascript for the options.
# Version '0.0.0' is used as NPM doesn't like Git hashes as versions.
2022-04-04 17:32:23 +00:00
#
# -p modelPropertyNaming=original is needed because otherwise the generator will
# use original naming internally, but generate docs with camelCase, and then
# things don't work properly.
2022-04-01 14:40:54 +00:00
java -jar addon/openapi-generator-cli.jar \
generate \
2022-05-19 13:22:37 +00:00
-i pkg/api/flamenco-openapi.yaml \
2022-04-01 14:40:54 +00:00
-g javascript \
2022-04-12 10:34:49 +00:00
-o web/_tmp-manager-api-javascript \
2022-07-25 12:45:06 +00:00
--http-user-agent " Flamenco/ ${ VERSION } / webbrowser " \
2022-04-01 14:40:54 +00:00
-p projectName = flamenco-manager \
-p projectVersion = "0.0.0" \
-p apiPackage = " ${ JS_API_PKG_NAME } " \
-p disallowAdditionalPropertiesIfNotPresent = false \
-p usePromises = true \
2022-07-25 14:03:16 +00:00
-p moduleName = flamencoManager > .openapi-generator-js.log
2022-04-01 14:40:54 +00:00
2022-04-12 10:34:49 +00:00
# Cherry-pick the generated sources, and remove everything else.
# The only relevant bit is that the generated code depends on `superagent`,
# which is listed in our `.
mv web/_tmp-manager-api-javascript/src web/app/src/manager-api
rm -rf web/_tmp-manager-api-javascript
2022-07-16 09:12:41 +00:00
# The generators always produce UNIX line-ends. This creates false file
# modifications with Git. Convert them to DOS line-ends to avoid this.
i f e q ( $( OS ) , W i n d o w s _ N T )
git status --porcelain | grep '^ M web/app/src/manager-api' | cut -d' ' -f3 | xargs unix2dos --keepdate
e n d i f
2022-04-04 17:32:23 +00:00
2022-07-25 12:45:06 +00:00
.PHONY :
update-version :
@echo " --- Updating Flamenco version to ${ VERSION } "
@echo "--- If this stops with exit status 42, it was already at that version."
@echo
go run ./cmd/update-version ${ VERSION }
$( MAKE) generate-py
$( MAKE) generate-js
@echo
@echo 'File replacement done, commit with:'
@echo
2022-08-31 15:50:38 +00:00
@echo git commit -m '"Bumped version to ${VERSION}"' Makefile \
2022-08-31 13:14:46 +00:00
addon/flamenco/__init__.py \
addon/flamenco/manager \
addon/flamenco/manager_README.md \
web/app/src/manager-api \
web/project-website/data/flamenco.yaml
2022-07-25 12:45:06 +00:00
@echo 'git tag -a -m "Tagged version ${VERSION}" v${VERSION}'
2022-01-03 14:05:10 +00:00
version :
2022-05-03 09:08:56 +00:00
@echo " Package : ${ PKG } "
@echo " Version : ${ VERSION } "
2022-07-25 12:45:06 +00:00
@echo " Git Hash : ${ GITHASH } "
@echo -n "GOOS : " ; go env GOOS
@echo -n "GOARCH : " ; go env GOARCH
2022-02-24 10:35:54 +00:00
@echo
@env | grep GO
2022-01-03 14:05:10 +00:00
2022-01-06 16:46:43 +00:00
list-embedded :
@go list -f '{{printf "%10s" .Name}}: {{.EmbedFiles}}' ${ PKG } /...
swagger-ui :
git clone --depth 1 https://github.com/swagger-api/swagger-ui.git tmp-swagger-ui
rm -rf pkg/api/static/swagger-ui
mv tmp-swagger-ui/dist pkg/api/static/swagger-ui
rm -rf tmp-swagger-ui
@echo
@echo 'Now update pkg/api/static/swagger-ui/index.html to have url: "/api/openapi3.json",'
2022-01-03 15:54:38 +00:00
2022-02-19 13:39:43 +00:00
test :
2022-06-30 15:41:36 +00:00
# Ensure the web-static directory exists, so that `web/web_app.go` can embed something.
mkdir -p ${ WEB_STATIC }
2024-03-16 11:12:31 +00:00
go test -short -failfast ./...
2022-01-03 14:05:10 +00:00
clean :
@go clean -i -x
2022-07-25 14:53:25 +00:00
rm -f flamenco*-v* flamenco-manager flamenco-worker *.exe flamenco-*_race addon-packer stresser
2022-06-30 15:41:36 +00:00
$( MAKE) clean-webapp-static
clean-webapp-static :
# Start with `./` to avoid horrors when WEB_STATIC is absolute (like / or /home/yourname).
rm -rf ./${ WEB_STATIC }
# Make sure there is at least something to embed by Go, or it may cause some errors.
mkdir -p ./${ WEB_STATIC }
touch ${ WEB_STATIC } /emptyfile
2023-09-08 13:39:20 +00:00
devserver-website :
2024-05-16 10:36:42 +00:00
go run ${ HUGO_PKG } -s web/project-website serve
2023-09-08 13:39:20 +00:00
devserver-webapp :
yarn --cwd web/app run dev --host
2023-09-08 13:37:29 +00:00
deploy-website :
2023-05-19 10:09:29 +00:00
$( MAKE) -s check-environment
2022-07-25 12:42:30 +00:00
rm -rf web/project-website/public/
2024-05-16 10:36:42 +00:00
go run ${ HUGO_PKG } -s web/project-website --baseURL https://flamenco.blender.org/
2022-08-02 10:57:43 +00:00
rsync web/project-website/public/ ${ WEBSERVER_SSH } :${ WEBSERVER_ROOT } / \
2023-05-13 13:54:40 +00:00
-e "ssh" \
2023-06-02 08:48:36 +00:00
-rl \
2022-07-05 14:17:25 +00:00
--exclude v2/ \
2022-08-02 11:06:08 +00:00
--exclude downloads/ \
2022-07-05 14:17:25 +00:00
--exclude .well-known/ \
--exclude .htaccess \
--delete-after
2022-01-03 14:05:10 +00:00
2023-05-19 10:09:29 +00:00
# For production deployments: check variables stored in .env
.PHONY : check -environment
check-environment :
i f n d e f W E B S E R V E R _ S S H
@echo "WEBSERVER_SSH not found. Check .env or .env.example"
exit 1
e n d i f
i f n d e f W E B S E R V E R _ R O O T
@echo "WEBSERVER_ROOT not found. Check .env or .env.example"
exit 1
e n d i f
2022-07-22 14:36:23 +00:00
# Download & install FFmpeg in the 'tools' directory for supported platforms.
.PHONY : tools
tools :
$( MAKE) -s tools-linux
$( MAKE) -s tools-darwin
$( MAKE) -s tools-windows
2023-07-31 15:07:44 +00:00
# FFmpeg version to bundle.
# Version 5.1.3 is the last release in the 5.x series, but binaries have not
# been made available. And then there are different 'latest' binaries for the
# different platforms.
FFMPEG_VERSION_LINUX = 5.1.1
FFMPEG_VERSION_WINDOWS = 5.1.2
FFMPEG_VERSION_DARWIN = 5.1.2
TOOLS = ./tools
TOOLS_DOWNLOAD = ./tools/download
FFMPEG_PACKAGE_LINUX = $( TOOLS_DOWNLOAD) /ffmpeg-$( FFMPEG_VERSION_LINUX) -linux-amd64-static.tar.xz
FFMPEG_PACKAGE_DARWIN = $( TOOLS_DOWNLOAD) /ffmpeg-$( FFMPEG_VERSION_DARWIN) -darwin-amd64.zip
FFMPEG_PACKAGE_WINDOWS = $( TOOLS_DOWNLOAD) /ffmpeg-$( FFMPEG_VERSION_WINDOWS) -windows-amd64.zip
2022-07-22 14:36:23 +00:00
.PHONY : tools -linux
tools-linux :
[ -e $( FFMPEG_PACKAGE_LINUX) ] || curl \
--create-dirs -o $( FFMPEG_PACKAGE_LINUX) \
2023-07-31 15:07:44 +00:00
https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-$( FFMPEG_VERSION_LINUX) -amd64-static.tar.xz
2022-07-22 14:36:23 +00:00
tar xvf \
$( FFMPEG_PACKAGE_LINUX) \
2023-07-31 15:07:44 +00:00
ffmpeg-$( FFMPEG_VERSION_LINUX) -amd64-static/ffmpeg \
2022-07-22 14:36:23 +00:00
--strip-components= 1
mv ffmpeg $( TOOLS) /ffmpeg-linux-amd64
.PHONY : tools -darwin
tools-darwin :
[ -e $( FFMPEG_PACKAGE_DARWIN) ] || curl \
--create-dirs -o $( FFMPEG_PACKAGE_DARWIN) \
2023-07-31 15:07:44 +00:00
https://evermeet.cx/ffmpeg/ffmpeg-$( FFMPEG_VERSION_DARWIN) .zip
2022-07-22 14:36:23 +00:00
unzip $( FFMPEG_PACKAGE_DARWIN)
mv ffmpeg $( TOOLS) /ffmpeg-darwin-amd64
.PHONY : tools -windows
tools-windows :
[ -e $( FFMPEG_PACKAGE_WINDOWS) ] || curl \
--create-dirs -o $( FFMPEG_PACKAGE_WINDOWS) \
2023-07-31 15:07:44 +00:00
https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-$( FFMPEG_VERSION_WINDOWS) -essentials_build.zip
unzip -j $( FFMPEG_PACKAGE_WINDOWS) ffmpeg-$( FFMPEG_VERSION_WINDOWS) -essentials_build/bin/ffmpeg.exe -d .
2022-07-22 14:36:23 +00:00
mv ffmpeg.exe $( TOOLS) /ffmpeg-windows-amd64.exe
2022-08-04 14:53:59 +00:00
RELEASE_PACKAGE_LINUX_BASE := flamenco-${ VERSION } -linux-amd64
RELEASE_PACKAGE_LINUX := ${ RELEASE_PACKAGE_LINUX_BASE } .tar.gz
RELEASE_PACKAGE_DARWIN_BASE := flamenco-${ VERSION } -macos-amd64
RELEASE_PACKAGE_DARWIN := ${ RELEASE_PACKAGE_DARWIN_BASE } .tar.gz
2023-10-20 09:27:14 +00:00
RELEASE_PACKAGE_DARWIN_ARM64_BASE := flamenco-${ VERSION } -macos-arm64
RELEASE_PACKAGE_DARWIN_ARM64 := ${ RELEASE_PACKAGE_DARWIN_ARM64_BASE } .tar.gz
2022-08-04 14:53:59 +00:00
2022-08-31 10:34:09 +00:00
RELEASE_PACKAGE_WINDOWS := flamenco-${ VERSION } -windows-amd64.zip
2022-08-04 14:53:59 +00:00
2022-08-04 14:47:17 +00:00
RELEASE_PACKAGE_EXTRA_FILES := README.md LICENSE CHANGELOG.md
2022-08-31 10:34:25 +00:00
RELEASE_PACKAGE_SHAFILE := flamenco-${ VERSION } .sha256
2022-07-25 14:53:25 +00:00
.PHONY : release -package
release-package :
2024-01-11 18:06:49 +00:00
$( MAKE) -s vet
2022-07-25 14:53:25 +00:00
$( MAKE) -s release-package-linux
$( MAKE) -s release-package-darwin
$( MAKE) -s release-package-windows
.PHONY : release -package -linux
release-package-linux :
$( MAKE) -s clean
$( MAKE) -s webapp-static
$( MAKE) -s flamenco-manager-without-webapp GOOS = linux GOARCH = amd64
$( MAKE) -s flamenco-worker GOOS = linux GOARCH = amd64
$( MAKE) -s tools-linux
2022-10-03 08:55:56 +00:00
mkdir -p dist/${ RELEASE_PACKAGE_LINUX_BASE } /tools
cp flamenco-manager flamenco-worker ${ RELEASE_PACKAGE_EXTRA_FILES } dist/${ RELEASE_PACKAGE_LINUX_BASE }
cp tools/*-linux* dist/${ RELEASE_PACKAGE_LINUX_BASE } /tools
2022-08-04 14:53:59 +00:00
cd dist; tar zcvf ${ RELEASE_PACKAGE_LINUX } ${ RELEASE_PACKAGE_LINUX_BASE }
rm -rf dist/${ RELEASE_PACKAGE_LINUX_BASE }
2022-07-25 14:53:25 +00:00
@echo " Done! Created ${ RELEASE_PACKAGE_LINUX } "
.PHONY : release -package -darwin
release-package-darwin :
$( MAKE) -s clean
$( MAKE) -s webapp-static
2023-10-20 09:27:14 +00:00
# AMD64
2023-10-20 14:53:55 +00:00
$( 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/${ RELEASE_PACKAGE_DARWIN_BASE } /tools
cp flamenco-manager flamenco-worker ${ RELEASE_PACKAGE_EXTRA_FILES } dist/${ RELEASE_PACKAGE_DARWIN_BASE }
cp tools/*-darwin* dist/${ RELEASE_PACKAGE_DARWIN_BASE } /tools
cd dist; tar zcvf ${ RELEASE_PACKAGE_DARWIN } ${ RELEASE_PACKAGE_DARWIN_BASE }
rm -rf dist/${ RELEASE_PACKAGE_DARWIN_BASE }
2023-10-20 09:27:14 +00:00
# ARM64, without tools because ffmpeg.org doesn't link to any official ARM64 binary.
$( MAKE) -s flamenco-manager-without-webapp GOOS = darwin GOARCH = arm64
$( MAKE) -s flamenco-worker GOOS = darwin GOARCH = arm64
2023-10-31 09:34:35 +00:00
mkdir -p dist/${ RELEASE_PACKAGE_DARWIN_ARM64_BASE } /tools
echo "Put an ffmpeg executable in this directory so that Flamenco Worker can find it" > dist/${ RELEASE_PACKAGE_DARWIN_ARM64_BASE } /tools/put_ffmpeg_here.txt
2023-10-20 09:27:14 +00:00
cp flamenco-manager flamenco-worker ${ RELEASE_PACKAGE_EXTRA_FILES } dist/${ RELEASE_PACKAGE_DARWIN_ARM64_BASE }
cd dist; tar zcvf ${ RELEASE_PACKAGE_DARWIN_ARM64 } ${ RELEASE_PACKAGE_DARWIN_ARM64_BASE }
rm -rf dist/${ RELEASE_PACKAGE_DARWIN_ARM64_BASE }
@echo " Done! Created ${ RELEASE_PACKAGE_DARWIN } and ${ RELEASE_PACKAGE_DARWIN_ARM64 } "
2022-07-25 14:53:25 +00:00
.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
2022-03-17 15:54:37 +00:00
mkdir -p dist
2022-08-31 10:34:09 +00:00
rm -f dist/${ RELEASE_PACKAGE_WINDOWS }
zip -r -9 dist/${ RELEASE_PACKAGE_WINDOWS } flamenco-manager.exe flamenco-worker.exe ${ RELEASE_PACKAGE_EXTRA_FILES } tools/*-windows*
2022-07-25 14:53:25 +00:00
@echo " Done! Created ${ RELEASE_PACKAGE_WINDOWS } "
2022-03-17 15:54:37 +00:00
2022-08-02 11:06:08 +00:00
.PHONY : publish -release -packages
publish-release-packages :
2023-05-19 10:09:29 +00:00
$( MAKE) -s check-environment
2023-10-20 09:30:27 +00:00
cd dist; sha256sum ${ RELEASE_PACKAGE_LINUX } ${ RELEASE_PACKAGE_DARWIN } ${ RELEASE_PACKAGE_DARWIN_ARM64 } ${ RELEASE_PACKAGE_WINDOWS } > ${ RELEASE_PACKAGE_SHAFILE }
2022-08-31 10:34:09 +00:00
cd dist; rsync -va \
2023-10-20 09:30:27 +00:00
${ RELEASE_PACKAGE_LINUX } ${ RELEASE_PACKAGE_DARWIN } ${ RELEASE_PACKAGE_DARWIN_ARM64 } ${ RELEASE_PACKAGE_WINDOWS } ${ RELEASE_PACKAGE_SHAFILE } \
2022-08-02 11:06:08 +00:00
${ WEBSERVER_SSH } :${ WEBSERVER_ROOT } /downloads/
2022-06-30 15:41:36 +00:00
.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