[tasks.appflowy] mac_alias = "appflowy-macos" windows_alias = "appflowy-windows" linux_alias = "appflowy-linux" [tasks.appflowy-macos] dependencies = ["appflowy-core-release"] run_task = { name = [ "code_generation", "set-app-version", "flutter-build", "copy-to-product", ] } script_runner = "@shell" [tasks.appflowy-windows] dependencies = ["appflowy-core-release"] run_task = { name = [ "code_generation", "set-app-version", "flutter-build", "copy-to-product", ] } [tasks.appflowy-linux] dependencies = ["appflowy-core-release"] run_task = { name = [ "code_generation", "set-app-version", "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 = ["appflowy-core-dev"] run_task = { name = [ "code_generation", "set-app-version", "flutter-build", "copy-to-product", ] } script_runner = "@shell" [tasks.appflowy-windows-dev] dependencies = ["appflowy-core-dev"] run_task = { name = [ "code_generation", "set-app-version", "flutter-build", "copy-to-product", ] } [tasks.appflowy-linux-dev] dependencies = ["appflowy-core-dev"] run_task = { name = [ "code_generation", "set-app-version", "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}/appflowy_flutter/product/${APP_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}/appflowy_flutter/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}/appflowy_flutter/product/${APP_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}/appflowy_flutter/build/${TARGET_OS}/${LINUX_ARCH}/${BUILD_FLAG}/bundle \ ${output_path}/${product} cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/linux/appflowy.desktop.temp ${output_path}/${product} cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/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}/appflowy_flutter/product/${APP_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}/appflowy_flutter/build/${TARGET_OS}/runner/${FLUTTER_OUTPUT_DIR}/**/* \ ${output_path}/${product} """, ] script_runner = "@duckscript" [tasks.set-app-version] script = [""" if is_empty ${APP_VERSION} APP_VERSION = set ${CURRENT_APP_VERSION} set_env APP_VERSION ${CURRENT_APP_VERSION} end echo APP_VERSION: ${APP_VERSION} """] 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}/appflowy_flutter/product/${APP_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}/appflowy_flutter/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}/appflowy_flutter/product/${VERSION}/${TARGET_OS}/Release/${PRODUCT_NAME}", # "tar -czf ${PRODUCT_NAME}-${TARGET_OS}-x86.tar.gz *" ] [tasks.flutter-build] script = [""" cd appflowy_flutter/ flutter clean flutter pub get flutter build ${TARGET_OS} --${BUILD_FLAG} """] script_runner = "@shell" [tasks.flutter-build.windows] script = [""" cd appflowy_flutter exec cmd.exe /c flutter clean exec cmd.exe /c flutter pub get exec cmd.exe /c flutter build ${TARGET_OS} --${BUILD_FLAG} --build-name=${APP_VERSION} """] script_runner = "@duckscript" [tasks.code_generation] script_runner = "@shell" script = [ """ chmod +x scripts/code_generation/generate.sh """, "scripts/code_generation/generate.sh" ] [tasks.code_generation.windows] script_runner = "@duckscript" script = [ """ exec "scripts/code_generation/generate.cmd" """, ] [tasks.dry_code_generation] script_runner = "@shell" script = [ """ cd appflowy_flutter dart run easy_localization:generate -S assets/translations/ -f keys -o locale_keys.g.dart -S assets/translations -s en.json dart run build_runner build -d """, ] [tasks.dry_code_generation.windows] script_runner = "@duckscript" script = [ """ cd ./appflowy_flutter/ exec cmd.exe /c dart run easy_localization:generate -S assets/translations/ -f keys -o locale_keys.g.dart -S assets/translations -s en.json exec cmd.exe /c dart run build_runner build -d """, ]