[tasks.appflowy] mac_alias = "appflowy-macos" windows_alias = "appflowy-windows" linux_alias = "appflowy-linux" [tasks.appflowy-macos] dependencies = ["flowy-sdk-release"] run_task = { name = ["generate_language_files", "flutter-build", "copy-to-product"] } script_runner = "@shell" [tasks.appflowy-windows] dependencies = ["flowy-sdk-release"] run_task = { name = ["generate_language_files", "flutter-build", "copy-to-product"] } [tasks.appflowy-linux] dependencies = ["flowy-sdk-release"] run_task = { name = ["generate_language_files", "flutter-build", "copy-to-product", "create-release-archive"] } script_runner = "@shell" [tasks.appflowy-dev] mac_alias = "appflowy-macos-dev" windows_alias = "appflowy-windows-dev" linux_alias = "appflowy-linux-dev" [tasks.appflowy-macos-dev] dependencies = ["flowy-sdk-dev"] run_task = { name = ["generate_language_files", "flutter-build", "copy-to-product"] } script_runner = "@shell" [tasks.appflowy-windows-dev] dependencies = ["flowy-sdk-dev"] run_task = { name = ["generate_language_files", "flutter-build", "copy-to-product"] } [tasks.appflowy-linux-dev] dependencies = ["flowy-sdk-dev"] run_task = { name = ["generate_language_files", "flutter-build", "copy-to-product"] } script_runner = "@shell" [tasks.copy-to-product] mac_alias = "copy-to-product-macos" windows_alias = "copy-to-product-windows" linux_alias = "copy-to-product-linux" [tasks.copy-to-product-macos] script = [ """ product_path=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/product/${VERSION} output_path=${product_path}/${TARGET_OS}/${FLUTTER_OUTPUT_DIR} if [ -d "${output_path}" ]; then rm -rf ${output_path}/ fi mkdir -p ${output_path} product=${PRODUCT_NAME}.${PRODUCT_EXT} cp -R ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/build/${TARGET_OS}/Build/Products/${FLUTTER_OUTPUT_DIR}/${product} \ ${output_path}/${product} """, ] script_runner = "@shell" [tasks.copy-to-product-linux] script = [ """ product_path=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/product/${VERSION} output_path=${product_path}/${TARGET_OS}/${FLUTTER_OUTPUT_DIR} if [ -d "${output_path}" ]; then rm -rf ${output_path}/ fi mkdir -p ${output_path} product=${PRODUCT_NAME} cp -R ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/build/${TARGET_OS}/${LINUX_ARCH}/${BUILD_FLAG}/bundle \ ${output_path}/${product} cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/linux/appflowy.desktop.temp ${output_path}/${product} cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/assets/images/flowy_logo.svg ${output_path}/${product} """, ] script_runner = "@shell" [tasks.copy-to-product-windows] script = [ """ product_path= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/product/${VERSION} output_path= set ${product_path}/${TARGET_OS} if is_path_exists ${output_path} rm -r ${output_path}/ fi mkdir ${output_path} product= set ${PRODUCT_NAME} glob_cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/build/${TARGET_OS}/runner/${FLUTTER_OUTPUT_DIR}/**/* \ ${output_path}/${product} """, ] script_runner = "@duckscript" # The following tasks will create an archive that will be used on the GitHub Releases section # The archives are created using different compression programs depending on the target OS # The archive will be composed of all files that are located in the /Release/AppFlowy directory [tasks.create-release-archive] mac_alias = "create-release-archive-macos" windows_alias = "create-release-archive-windows" linux_alias = "create-release-archive-linux" [tasks.create-release-archive-linux] script = [ "cd ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/product/${VERSION}/${TARGET_OS}/Release", "tar -czf ${PRODUCT_NAME}-${TARGET_OS}-x86.tar.gz *" ] [tasks.create-release-archive-windows] script = [ # TODO # "cd ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/product/${VERSION}/${TARGET_OS}/Release/${PRODUCT_NAME}", # "tar -czf ${PRODUCT_NAME}-${TARGET_OS}-x86.tar.gz *" ] [tasks.create-release-archive-macos] script = [ # TODO # "cd ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/product/${VERSION}/${TARGET_OS}/Release/${PRODUCT_NAME}", # "tar -czf ${PRODUCT_NAME}-${TARGET_OS}-x86.tar.gz *" ] [tasks.flutter-build] script = [ """ cd app_flowy/ flutter clean flutter pub get flutter build ${TARGET_OS} --${BUILD_FLAG} --build-name=${VERSION} """, ] script_runner = "@shell" [tasks.flutter-build.linux] script = [ """ cd app_flowy/ flutter clean flutter pub get flutter build ${TARGET_OS} --${BUILD_FLAG} """, ] script_runner = "@shell" [tasks.flutter-build.windows] script = [ """ cd app_flowy exec cmd.exe /c flutter clean exec cmd.exe /c flutter pub get exec cmd.exe /c flutter build ${TARGET_OS} --${BUILD_FLAG} """, ] script_runner = "@duckscript" [tasks.freeze_setup] script = [ """ flutter clean flutter pub get flutter pub run build_runner build --delete-conflicting-outputs """, ] script_runner = "@shell" [tasks.freeze_watch] script = [ """ flutter pub run build_runner watch """, ] script_runner = "@shell" [tasks.generate_language_files] script_runner = "@shell" script = [ """ cd app_flowy flutter clean flutter pub get flutter pub run easy_localization:generate -S assets/translations/ flutter pub run easy_localization:generate -f keys -o locale_keys.g.dart -S assets/translations -s en.json """ ] [tasks.generate_language_files.windows] script_runner = "@duckscript" script = [ """ cd ./app_flowy/ exec cmd.exe /c flutter clean exec cmd.exe /c flutter pub get exec cmd.exe /c flutter pub run easy_localization:generate -S assets/translations/ exec cmd.exe /c flutter pub run easy_localization:generate -f keys -o locale_keys.g.dart -S assets/translations """ ]