diff --git a/CHANGELOG-BETA.md b/CHANGELOG-BETA.md index ada6429d4..c1dee2f84 100644 --- a/CHANGELOG-BETA.md +++ b/CHANGELOG-BETA.md @@ -6,6 +6,7 @@ 1. 【server】修复 非管理员用户无法使用脚本库数据(感谢[@丁炳坤](https://gitee.com/dbk12138) [Gitee issues IA8ZKP](https://gitee.com/dromara/Jpom/issues/IA8ZKP) ) 2. 【server】修复 构建编辑页面未输入构建命令提示错误(感谢[@yt](https://gitee.com/a1127583020) [Gitee issues IAAI8D](https://gitee.com/dromara/Jpom/issues/IAAI8D) ) +3. 【server】优化 构建容器镜像支持推送到远程仓库后自动删除本地镜像(感谢 [@爱琳琳真是太好了](https://gitee.com/qiqi513_admin) [Gitee issues IA6UBO](https://gitee.com/dromara/Jpom/issues/IA6UBO) ) ------ @@ -105,7 +106,7 @@ ### 🐞 解决BUG、优化功能 1. 【server】修复 没有端口的容器重建页面异常(感谢@冰淇淋还是冰激凌) -2. 【server】修复 工作空间菜单配置错误(感谢@Again... .) +2. 【server】修复 工作空间菜单配置错误(感谢@Again... .) 3. 【server】优化 ssh 管理独立 tab 页面使用默认的字符串排序 4. 【server】修复 服务端脚本无法执行、参数值描述不对应(感谢@冰淇淋还是冰激凌) @@ -173,7 +174,7 @@ ### 🐞 解决BUG、优化功能 -1. 【server】升级 前端组件版本 +1. 【server】升级 前端组件版本 2. 【all】优化 管理脚本删除 `-XX:-UseBiasedLocking` 使其能在高版本 jdk 运行 3. 【server】修复 构建列表卡片模式按钮文字错乱 4. 【server】修复 项目列表和逻辑节点卡片视图冲突 diff --git a/modules/common/src/main/resources/i18n/messages_en_US.properties b/modules/common/src/main/resources/i18n/messages_en_US.properties index 516590485..cf2cceeba 100644 --- a/modules/common/src/main/resources/i18n/messages_en_US.properties +++ b/modules/common/src/main/resources/i18n/messages_en_US.properties @@ -1,5 +1,5 @@ #i18n en_US -#Wed Jul 03 16:30:47 CST 2024 +#Thu Jul 04 16:11:27 CST 2024 i18n.ssh_info_does_not_exist.5ed0=SSH information does not exist i18n.incompatible_program_versions.5291=The current program version {} The new version of the program is minimum compatible {} and cannot be upgraded directly i18n.no_projects_configured.e873=No items are configured @@ -7,6 +7,7 @@ i18n.docker_log_thread_ended.8230=Docker log thread ends\: {} {} i18n.machine_ssh_info.8dbb=Machine SSH information i18n.machine_info_not_exist.3468=The corresponding machine information does not exist. i18n.unsupported_method.a1de=Unsupported way +i18n.delete_local_image_failed.91fa=Failed to delete local image i18n.service_name_in_cluster_required.5446=Please fill in the service name in the cluster i18n.cluster_manager_node_not_found.1cd0=No cluster management node found i18n.distribute_id_already_exists.2168=The distribution id already exists @@ -133,6 +134,7 @@ i18n.trigger_exception.d624=trigger exception i18n.remote_addresses_not_configured.275e=The allowed remote address has not been configured i18n.table_error_workspace_data.9021=Table {}[{}] {} error workspace data - > {} i18n.directory_cannot_skip_levels.179e=Directories cannot be leapfrogged\: +i18n.start_push_image_to_remote_repo.10a7=Start pushing images to remote repositories :({}),{} {}{} i18n.normal_end.3bfe=end normally i18n.start_building.1039=Start building i18n.empty_execution_result.9fe8=The execution result is empty. @@ -140,6 +142,7 @@ i18n.database_exception_due_to_resources.dbf1=The database is abnormal, and the i18n.prepare_rollback.dba6=Start preparing to roll back :{} -> {} i18n.monitor_node_exception.6ff1=Monitor {} Node Abnormal {} i18n.add_new_success.431a=Added success\! +i18n.docker_image_tag_version_increment.d436=Docker image tag version number increments {} -> {} i18n.no_parameters_added_with_minus_one.e47d=No parameters were added\: -1 i18n.welcome_join_session.1c16=Welcome to\: {} Session id\: {} i18n.backup_old_package_failure_due_to_new_package_absence.b90c=Backup of the old package failed\: {}, because the new package does not exist\: {} @@ -177,6 +180,7 @@ i18n.only_tar_files_supported.dcc4=Only supports tar files i18n.file_management_center.0f5f=Document Management Center i18n.no_file_found.7d40=Does not correspond to file i18n.server_captcha_generation_exception.54d0=The current server generates a verification code abnormally, and the verification code is automatically disabled. +i18n.start_executing.87e7={} Start execution {} i18n.node_script_template_execution_record.704a=Node script template execution record i18n.response_exception_status_code.cbca={} response exception, status code error\: {} {} i18n.current_project_associated_with_online_build_and_repository.96c5=The [Online Build] associated [Repository ({}) ] associated with the current [Project] is bound by other {} [Online Build] with different publishing methods, and migration is not supported for the time being @@ -678,6 +682,7 @@ i18n.ssh_folder_creation_exception.6ed2=SSH create folder exception i18n.ssh_batch_command_execution_exception.029a=SSH batch execution command exception i18n.content_type_not_supported.81a9=unsupported contentType i18n.cloud_server_network_issues.a865=Troubleshooting and positioning of network-related issues such as security group configuration of Cloud as a Service. +i18n.start_building_image.eacd={} Start building the mirror {} {} i18n.configure_correct_redirect_url.058e=Please configure the correct redirect URL. i18n.no_cache_info_with_minus_one.52f2=No corresponding cache information\: -1 i18n.no_node_entry_found.b1ef=No corresponding node item found\: {} @@ -954,6 +959,7 @@ i18n.start_new_thread_for_h2_database_backup.9337=Start a new thread to perform i18n.docker_exec_terminal_process_ended.c734=[{}] docker exec end point i18n.node_migration_project_failure.d5ff=Node migration project failed i18n.cannot_cancel_super_admin_permissions.99b5=Cannot revoke super administrator permissions +i18n.start_upload_ftp_file.20be={} {} Start uploading FTP file {} i18n.distribute_node_configuration_failure.8146=Distribution {} node configuration failed {} i18n.file_upload_failed.462e=Uploading file failed\: i18n.node_service_resumed_normal_operation.2cbd=The [{}] project {} of the [{}] node has resumed normal operation @@ -988,6 +994,7 @@ i18n.line_number_error.c65d=wrong line number i18n.node_machine_table_exists_no_need_to_fix.2625={} pieces of data already exist in the node machine table, no need to repair the machine data i18n.execution_exception_message.ef79=Execution exception\: i18n.auto_detect_local_docker_and_add.af72=The local docker is automatically detected and automatically added\: +i18n.version_increment_error.0157=Version number increment error, no digital version number {} i18n.database_event_execution_ended.690b=Database {} event execution ended,\: {} i18n.build_history.a05c=Building history i18n.machine_installation_id.d0b9=The local installation ID is\: {} @@ -1145,8 +1152,8 @@ i18n.reset_log_failure.b3d3=Failed to reset log i18n.type_field_required.7637=Line {} type field cannot be empty i18n.migration_target_workspace_node_mismatch.d9cf=The target workspace and node to migrate to are inconsistent i18n.start_deleting_files.210c=Start deleting {} file {} -i18n.download_success.5094=Download successful i18n.running_project_cannot_change_path.5888=A running project cannot modify the path +i18n.download_success.5094=Download successful i18n.please_fill_in_correct_gradle_version.6e19=Please fill in the correct gradle version number i18n.get_node_monitoring_info_failure.595a=Failed to obtain node monitoring information i18n.docker_authorization_failed.8ede=Docker authorization failed\: {} @@ -1302,6 +1309,7 @@ i18n.current_distribution_has_build_items_cannot_unbind.a8e9=There is a build it i18n.listen_file_failed_may_not_exist.fd56=Listening to the file failed, maybe the file does not exist i18n.log_file_cleanup_failed.3a3b=Failed to clean log file i18n.parse_csv_exception.885e=Parsing CSV Exception +i18n.auto_delete_local_image_after_push.c13d=Automatically delete the local mirror after the push mirror ends :({}),{} {} i18n.no_build_record_found.76f4=There is no corresponding build record yet. i18n.login_info_required.973b=Please enter your login information i18n.h2_database_backup_success.a099=H2 database backup was successful\: {} diff --git a/modules/common/src/main/resources/i18n/messages_zh_CN.properties b/modules/common/src/main/resources/i18n/messages_zh_CN.properties index a2b5b2f9f..5c791512c 100644 --- a/modules/common/src/main/resources/i18n/messages_zh_CN.properties +++ b/modules/common/src/main/resources/i18n/messages_zh_CN.properties @@ -1,5 +1,5 @@ #i18n zh -#Wed Jul 03 16:30:42 CST 2024 +#Thu Jul 04 16:11:20 CST 2024 i18n.ssh_info_does_not_exist.5ed0=ssh 信息不存在啦 i18n.incompatible_program_versions.5291=当前程序版本 {} 新版程序最低兼容 {} 不能直接升级 i18n.no_projects_configured.e873=没有配置任何项目 @@ -7,6 +7,7 @@ i18n.docker_log_thread_ended.8230=docker log 线程结束:{} {} i18n.machine_ssh_info.8dbb=机器SSH信息 i18n.machine_info_not_exist.3468=对应的机器信息不存在 i18n.unsupported_method.a1de=不支持的方式 +i18n.delete_local_image_failed.91fa=删除本地镜像失败 i18n.service_name_in_cluster_required.5446=请填写集群中的服务名 i18n.cluster_manager_node_not_found.1cd0=没有找到集群管理节点 i18n.distribute_id_already_exists.2168=分发id已经存在啦 @@ -133,6 +134,7 @@ i18n.trigger_exception.d624=触发异常 i18n.remote_addresses_not_configured.275e=还没有配置允许的远程地址 i18n.table_error_workspace_data.9021=表 {}[{}] 存在 {} 条错误工作空间数据 -> {} i18n.directory_cannot_skip_levels.179e=目录不能越级: +i18n.start_push_image_to_remote_repo.10a7=开始推送镜像到远程仓库:({}),{} {}{} i18n.start_building.1039=开始构建中 i18n.normal_end.3bfe=正常结束 i18n.empty_execution_result.9fe8=执行结果为空, @@ -140,6 +142,7 @@ i18n.database_exception_due_to_resources.dbf1=数据库异常,可能因为服务 i18n.prepare_rollback.dba6=开始准备回滚:{} -> {} i18n.monitor_node_exception.6ff1=监控 {} 节点异常 {} i18n.add_new_success.431a=新增成功! +i18n.docker_image_tag_version_increment.d436=docker 镜像 tag 版本号递增 {} -> {} i18n.no_parameters_added_with_minus_one.e47d=没有添加任何参数\:-1 i18n.welcome_join_session.1c16=欢迎加入\:{} 会话id\:{} i18n.backup_old_package_failure_due_to_new_package_absence.b90c=备份旧程序包失败:{},因为新程序包不存在:{} @@ -177,6 +180,7 @@ i18n.only_tar_files_supported.dcc4=只支持tar文件 i18n.file_management_center.0f5f=文件管理中心 i18n.no_file_found.7d40=没有对应到文件 i18n.server_captcha_generation_exception.54d0=当前服务器生成验证码异常,自动禁用验证码 +i18n.start_executing.87e7={} 开始执行 {} i18n.node_script_template_execution_record.704a=节点脚本模版执行记录 i18n.response_exception_status_code.cbca={} 响应异常 状态码错误:{} {} i18n.current_project_associated_with_online_build_and_repository.96c5=当前【项目】关联的【在线构建】关联的【仓库({})】被其他 {} 个不同发布方式的【在线构建】绑定暂不支持迁移 @@ -678,6 +682,7 @@ i18n.ssh_folder_creation_exception.6ed2=ssh创建文件夹异常 i18n.ssh_batch_command_execution_exception.029a=ssh 批量执行命令异常 i18n.content_type_not_supported.81a9=不支持的 contentType i18n.cloud_server_network_issues.a865=云服务器的安全组配置等网络相关问题排查定位。 +i18n.start_building_image.eacd={} 开始构建镜像 {}{} i18n.configure_correct_redirect_url.058e=请配置正确的重定向 url i18n.no_cache_info_with_minus_one.52f2=没有对应的缓存信息:-1 i18n.no_node_entry_found.b1ef=没有找到对应的节点项:{} @@ -931,8 +936,8 @@ i18n.invalid_repository_info.b4ad=无效的仓库信息 i18n.login_JPOM.0de6=登录JPOM i18n.ssh_does_not_exist_with_message.de6c=对应的 ssh 不存在 i18n.not_running.4f8a=未运行 -i18n.no_get_id_method.2a65=没有 getId 方法 i18n.project_id_keyword_occupied.1cae=项目id {} 关键词被系统占用 +i18n.no_get_id_method.2a65=没有 getId 方法 i18n.delete_log_file_failure_with_colon.d867=删除日志文件失败\: i18n.manual_cancel.8464=手动取消 i18n.super_admin_mfa_verification_disabled.b97d=成功关闭超级管理员账号 mfa 验证:{} @@ -954,6 +959,7 @@ i18n.node_plugin_version_required.2318=node 插件 version 不能为空 i18n.docker_exec_terminal_process_ended.c734=[{}] docker exec 终端进程结束 i18n.node_migration_project_failure.d5ff=节点迁移项目失败 i18n.cannot_cancel_super_admin_permissions.99b5=不能取消超级管理员的权限 +i18n.start_upload_ftp_file.20be={} {} 开始上传 FTP 文件{} i18n.distribute_node_configuration_failure.8146=分发 {} 节点配置失败 {} i18n.file_upload_failed.462e=上传文件失败: i18n.node_service_resumed_normal_operation.2cbd=【{}】节点的【{}】项目{}已经恢复正常运行 @@ -985,6 +991,7 @@ i18n.contact_does_not_exist.3369=联系人不存在 i18n.check_cluster_info_exception.7b0c=检查集群信息异常 i18n.docker_cluster_info.a2eb=docker 集群信息 i18n.line_number_error.c65d=行号错误 +i18n.version_increment_error.0157=版本号递增错误,没有数字版本号 {} i18n.node_machine_table_exists_no_need_to_fix.2625=节点机器表已经存在 {} 条数据,不需要修复机器数据 i18n.execution_exception_message.ef79=执行异常\: i18n.auto_detect_local_docker_and_add.af72=自动探测到本地 docker 并且自动添加: @@ -1303,6 +1310,7 @@ i18n.listen_file_failed_may_not_exist.fd56=监听文件失败,可能文件不存 i18n.log_file_cleanup_failed.3a3b=清理日志文件失败 i18n.parse_csv_exception.885e=解析 csv 异常 i18n.no_build_record_found.76f4=还没有对应的构建记录 +i18n.auto_delete_local_image_after_push.c13d=推送镜像结束后自动删除本地镜像:({}),{} {} i18n.login_info_required.973b=请输入登录信息 i18n.h2_database_backup_success.a099=H2 数据库备份成功:{} i18n.uses_only_supports_string_type.ac54=uses 只支持 String 类型 diff --git a/modules/common/src/main/resources/i18n/messages_zh_HK.properties b/modules/common/src/main/resources/i18n/messages_zh_HK.properties index 8d25db587..0bb74acf3 100644 --- a/modules/common/src/main/resources/i18n/messages_zh_HK.properties +++ b/modules/common/src/main/resources/i18n/messages_zh_HK.properties @@ -1,5 +1,5 @@ #i18n zh_HK -#Wed Jul 03 16:30:43 CST 2024 +#Thu Jul 04 16:11:23 CST 2024 i18n.ssh_info_does_not_exist.5ed0=ssh 信息不存在啦 i18n.incompatible_program_versions.5291=當前程序版本 {} 新版程序最低兼容 {} 不能直接升級 i18n.no_projects_configured.e873=沒有配置任何項目 @@ -7,6 +7,7 @@ i18n.docker_log_thread_ended.8230=docker log 線程結束:{} {} i18n.machine_ssh_info.8dbb=機器SSH信息 i18n.machine_info_not_exist.3468=對應的機器信息不存在 i18n.unsupported_method.a1de=不支持的方式 +i18n.delete_local_image_failed.91fa=刪除本地鏡像失敗 i18n.service_name_in_cluster_required.5446=請填寫集羣中的服務名 i18n.cluster_manager_node_not_found.1cd0=沒有找到集羣管理節點 i18n.distribute_id_already_exists.2168=分發id已經存在啦 @@ -133,6 +134,7 @@ i18n.trigger_exception.d624=觸發異常 i18n.remote_addresses_not_configured.275e=還沒有配置允許的遠程地址 i18n.table_error_workspace_data.9021=表 {}[{}] 存在 {} 條錯誤工作空間數據 -> {} i18n.directory_cannot_skip_levels.179e=目錄不能越級: +i18n.start_push_image_to_remote_repo.10a7=開始推送鏡像到遠程倉庫:({}),{} {}{} i18n.normal_end.3bfe=正常結束 i18n.start_building.1039=開始構建中 i18n.empty_execution_result.9fe8=執行結果為空, @@ -140,6 +142,7 @@ i18n.database_exception_due_to_resources.dbf1=數據庫異常,可能因為服務 i18n.prepare_rollback.dba6=開始準備回滾:{} -> {} i18n.monitor_node_exception.6ff1=監控 {} 節點異常 {} i18n.add_new_success.431a=新增成功! +i18n.docker_image_tag_version_increment.d436=docker 鏡像 tag 版本號遞增 {} -> {} i18n.no_parameters_added_with_minus_one.e47d=沒有添加任何參數\:-1 i18n.welcome_join_session.1c16=歡迎加入\:{} 會話id\:{} i18n.backup_old_package_failure_due_to_new_package_absence.b90c=備份舊程序包失敗:{},因為新程序包不存在:{} @@ -177,6 +180,7 @@ i18n.only_tar_files_supported.dcc4=只支持tar文件 i18n.file_management_center.0f5f=文件管理中心 i18n.no_file_found.7d40=沒有對應到文件 i18n.server_captcha_generation_exception.54d0=當前服務器生成驗證碼異常,自動禁用驗證碼 +i18n.start_executing.87e7={} 開始執行 {} i18n.node_script_template_execution_record.704a=節點腳本模版執行記錄 i18n.response_exception_status_code.cbca={} 響應異常 狀態碼錯誤:{} {} i18n.current_project_associated_with_online_build_and_repository.96c5=當前【項目】關聯的【在線構建】關聯的【倉庫({})】被其他 {} 個不同發佈方式的【在線構建】綁定暫不支持遷移 @@ -678,6 +682,7 @@ i18n.ssh_folder_creation_exception.6ed2=ssh創建文件夾異常 i18n.ssh_batch_command_execution_exception.029a=ssh 批量執行命令異常 i18n.content_type_not_supported.81a9=不支持的 contentType i18n.cloud_server_network_issues.a865=雲服務器的安全組配置等網絡相關問題排查定位。 +i18n.start_building_image.eacd={} 開始構建鏡像 {}{} i18n.configure_correct_redirect_url.058e=請配置正確的重定向 url i18n.no_cache_info_with_minus_one.52f2=沒有對應的緩存信息:-1 i18n.no_node_entry_found.b1ef=沒有找到對應的節點項:{} @@ -954,6 +959,7 @@ i18n.start_new_thread_for_h2_database_backup.9337=啟動一個新線程來執行 i18n.docker_exec_terminal_process_ended.c734=[{}] docker exec 終端進程結束 i18n.node_migration_project_failure.d5ff=節點遷移項目失敗 i18n.cannot_cancel_super_admin_permissions.99b5=不能取消超級管理員的權限 +i18n.start_upload_ftp_file.20be={} {} 開始上傳 FTP 文件{} i18n.distribute_node_configuration_failure.8146=分發 {} 節點配置失敗 {} i18n.file_upload_failed.462e=上傳文件失敗: i18n.node_service_resumed_normal_operation.2cbd=【{}】節點的【{}】項目{}已經恢復正常運行 @@ -988,6 +994,7 @@ i18n.line_number_error.c65d=行號錯誤 i18n.node_machine_table_exists_no_need_to_fix.2625=節點機器表已經存在 {} 條數據,不需要修復機器數據 i18n.execution_exception_message.ef79=執行異常\: i18n.auto_detect_local_docker_and_add.af72=自動探測到本地 docker 並且自動添加: +i18n.version_increment_error.0157=版本號遞增錯誤,沒有數字版本號 {} i18n.database_event_execution_ended.690b=數據庫 {} 事件執行結束,:{} i18n.build_history.a05c=構建歷史 i18n.machine_installation_id.d0b9=本機安裝 ID 為:{} @@ -1145,8 +1152,8 @@ i18n.reset_log_failure.b3d3=重置日誌失敗 i18n.type_field_required.7637=第 {} 行 type 字段不能位空 i18n.migration_target_workspace_node_mismatch.d9cf=要遷移到的目標工作空間和節點不一致 i18n.start_deleting_files.210c=開始刪除 {} 文件 {} -i18n.download_success.5094=下載成功 i18n.running_project_cannot_change_path.5888=正在運行的項目不能修改路徑 +i18n.download_success.5094=下載成功 i18n.please_fill_in_correct_gradle_version.6e19=請填入正確的 gradle 版本號 i18n.get_node_monitoring_info_failure.595a=獲取節點監控信息失敗 i18n.docker_authorization_failed.8ede=docker 授權失敗\:{} @@ -1302,6 +1309,7 @@ i18n.current_distribution_has_build_items_cannot_unbind.a8e9=當前分發存在 i18n.listen_file_failed_may_not_exist.fd56=監聽文件失敗,可能文件不存在 i18n.log_file_cleanup_failed.3a3b=清理日誌文件失敗 i18n.parse_csv_exception.885e=解析 csv 異常 +i18n.auto_delete_local_image_after_push.c13d=推送鏡像結束後自動刪除本地鏡像:({}),{} {} i18n.no_build_record_found.76f4=還沒有對應的構建記錄 i18n.login_info_required.973b=請輸入登錄信息 i18n.h2_database_backup_success.a099=H2 數據庫備份成功:{} diff --git a/modules/common/src/main/resources/i18n/messages_zh_TW.properties b/modules/common/src/main/resources/i18n/messages_zh_TW.properties index 48aee87c6..140d5bc88 100644 --- a/modules/common/src/main/resources/i18n/messages_zh_TW.properties +++ b/modules/common/src/main/resources/i18n/messages_zh_TW.properties @@ -1,5 +1,5 @@ #i18n zh_TW -#Wed Jul 03 16:30:44 CST 2024 +#Thu Jul 04 16:11:25 CST 2024 i18n.ssh_info_does_not_exist.5ed0=ssh 資訊不存在啦 i18n.incompatible_program_versions.5291=當前程式版本 {} 新版程式最低相容 {} 不能直接升級 i18n.no_projects_configured.e873=沒有配置任何專案 @@ -7,6 +7,7 @@ i18n.docker_log_thread_ended.8230=docker log 執行緒結束:{} {} i18n.machine_ssh_info.8dbb=機器SSH資訊 i18n.machine_info_not_exist.3468=對應的機器資訊不存在 i18n.unsupported_method.a1de=不支援的方式 +i18n.delete_local_image_failed.91fa=刪除本地映象失敗 i18n.service_name_in_cluster_required.5446=請填寫叢集中的服務名 i18n.cluster_manager_node_not_found.1cd0=沒有找到叢集管理節點 i18n.distribute_id_already_exists.2168=分發id已經存在啦 @@ -133,6 +134,7 @@ i18n.trigger_exception.d624=觸發異常 i18n.remote_addresses_not_configured.275e=還沒有配置允許的遠端地址 i18n.table_error_workspace_data.9021=表 {}[{}] 存在 {} 條錯誤工作空間資料 -> {} i18n.directory_cannot_skip_levels.179e=目錄不能越級: +i18n.start_push_image_to_remote_repo.10a7=開始推送映象到遠端倉庫:({}),{} {}{} i18n.normal_end.3bfe=正常結束 i18n.start_building.1039=開始構建中 i18n.empty_execution_result.9fe8=執行結果為空, @@ -140,6 +142,7 @@ i18n.database_exception_due_to_resources.dbf1=資料庫異常,可能因為伺服 i18n.prepare_rollback.dba6=開始準備回滾:{} -> {} i18n.monitor_node_exception.6ff1=監控 {} 節點異常 {} i18n.add_new_success.431a=新增成功! +i18n.docker_image_tag_version_increment.d436=docker 映象 tag 版本號遞增 {} -> {} i18n.no_parameters_added_with_minus_one.e47d=沒有新增任何引數\:-1 i18n.welcome_join_session.1c16=歡迎加入\:{} 會話id\:{} i18n.backup_old_package_failure_due_to_new_package_absence.b90c=備份舊程式包失敗:{},因為新程式包不存在:{} @@ -177,6 +180,7 @@ i18n.only_tar_files_supported.dcc4=只支援tar檔案 i18n.file_management_center.0f5f=檔案管理中心 i18n.no_file_found.7d40=沒有對應到檔案 i18n.server_captcha_generation_exception.54d0=當前伺服器生成驗證碼異常,自動禁用驗證碼 +i18n.start_executing.87e7={} 開始執行 {} i18n.node_script_template_execution_record.704a=節點指令碼模版執行記錄 i18n.response_exception_status_code.cbca={} 響應異常 狀態碼錯誤:{} {} i18n.current_project_associated_with_online_build_and_repository.96c5=當前【專案】關聯的【線上構建】關聯的【倉庫({})】被其他 {} 個不同釋出方式的【線上構建】繫結暫不支援遷移 @@ -678,6 +682,7 @@ i18n.ssh_folder_creation_exception.6ed2=ssh建立資料夾異常 i18n.ssh_batch_command_execution_exception.029a=ssh 批量執行命令異常 i18n.content_type_not_supported.81a9=不支援的 contentType i18n.cloud_server_network_issues.a865=雲伺服器的安全組配置等網路相關問題排查定位。 +i18n.start_building_image.eacd={} 開始構建映象 {}{} i18n.configure_correct_redirect_url.058e=請配置正確的重定向 url i18n.no_cache_info_with_minus_one.52f2=沒有對應的快取資訊:-1 i18n.no_node_entry_found.b1ef=沒有找到對應的節點項:{} @@ -954,6 +959,7 @@ i18n.start_new_thread_for_h2_database_backup.9337=啟動一個新執行緒來執 i18n.docker_exec_terminal_process_ended.c734=[{}] docker exec 終端程序結束 i18n.node_migration_project_failure.d5ff=節點遷移專案失敗 i18n.cannot_cancel_super_admin_permissions.99b5=不能取消超級管理員的許可權 +i18n.start_upload_ftp_file.20be={} {} 開始上傳 FTP 檔案{} i18n.distribute_node_configuration_failure.8146=分發 {} 節點配置失敗 {} i18n.file_upload_failed.462e=上傳檔案失敗: i18n.node_service_resumed_normal_operation.2cbd=【{}】節點的【{}】專案{}已經恢復正常執行 @@ -988,6 +994,7 @@ i18n.line_number_error.c65d=行號錯誤 i18n.node_machine_table_exists_no_need_to_fix.2625=節點機器表已經存在 {} 條資料,不需要修復機器資料 i18n.execution_exception_message.ef79=執行異常\: i18n.auto_detect_local_docker_and_add.af72=自動探測到本地 docker 並且自動新增: +i18n.version_increment_error.0157=版本號遞增錯誤,沒有數字版本號 {} i18n.database_event_execution_ended.690b=資料庫 {} 事件執行結束,:{} i18n.build_history.a05c=構建歷史 i18n.machine_installation_id.d0b9=本機安裝 ID 為:{} @@ -1145,8 +1152,8 @@ i18n.reset_log_failure.b3d3=重置日誌失敗 i18n.type_field_required.7637=第 {} 行 type 欄位不能位空 i18n.migration_target_workspace_node_mismatch.d9cf=要遷移到的目標工作空間和節點不一致 i18n.start_deleting_files.210c=開始刪除 {} 檔案 {} -i18n.download_success.5094=下載成功 i18n.running_project_cannot_change_path.5888=正在執行的專案不能修改路徑 +i18n.download_success.5094=下載成功 i18n.please_fill_in_correct_gradle_version.6e19=請填入正確的 gradle 版本號 i18n.get_node_monitoring_info_failure.595a=獲取節點監控資訊失敗 i18n.docker_authorization_failed.8ede=docker 授權失敗\:{} @@ -1302,6 +1309,7 @@ i18n.current_distribution_has_build_items_cannot_unbind.a8e9=當前分發存在 i18n.listen_file_failed_may_not_exist.fd56=監聽檔案失敗,可能檔案不存在 i18n.log_file_cleanup_failed.3a3b=清理日誌檔案失敗 i18n.parse_csv_exception.885e=解析 csv 異常 +i18n.auto_delete_local_image_after_push.c13d=推送映象結束後自動刪除本地映象:({}),{} {} i18n.no_build_record_found.76f4=還沒有對應的構建記錄 i18n.login_info_required.973b=請輸入登入資訊 i18n.h2_database_backup_success.a099=H2 資料庫備份成功:{} diff --git a/modules/common/src/main/resources/i18n/words.json b/modules/common/src/main/resources/i18n/words.json index cbb3077e4..35a709b1a 100644 --- a/modules/common/src/main/resources/i18n/words.json +++ b/modules/common/src/main/resources/i18n/words.json @@ -57,6 +57,7 @@ "i18n.auto_clear_machine_node_stats_logs.5279":"自动清理 {} 条机器节点统计日志", "i18n.auto_delete_data.ca62":" 自动删除 {} 表中数据 {} 条数据", "i18n.auto_delete_expired_build_history_files.723b":"自动删除过期的构建历史相关文件:{} {}", + "i18n.auto_delete_local_image_after_push.c13d":"推送镜像结束后自动删除本地镜像:({}),{} {}", "i18n.auto_detect_local_docker_and_add.af72":"自动探测到本地 docker 并且自动添加:", "i18n.auto_migrate_associated_build.a060":"自动迁移关联的构建:{}", "i18n.auto_migrate_associated_build_and_repo.0b3f":"自动迁移关联的构建:{} 和 仓库:{}", @@ -362,6 +363,7 @@ "i18n.delete_failure_with_colon_and_full_stop.bc42":"删除失败:", "i18n.delete_file_failure.041f":"删除文件失败,请检查", "i18n.delete_file_failure_with_full_stop.6c96":"删除文件失败:", + "i18n.delete_local_image_failed.91fa":"删除本地镜像失败", "i18n.delete_log_file_failure.bf0b":"删除日志文件失败", "i18n.delete_log_file_failure_with_colon.d867":"删除日志文件失败:", "i18n.delete_old_package.ca95":"删除旧程序包:{}", @@ -423,6 +425,7 @@ "i18n.docker_does_not_exist.bb41":"对应的 docker 不存在", "i18n.docker_does_not_exist_with_code.689b":"对应的 docker 不存在:-1", "i18n.docker_exec_terminal_process_ended.c734":"[{}] docker exec 终端进程结束", + "i18n.docker_image_tag_version_increment.d436":"docker 镜像 tag 版本号递增 {} -> {}", "i18n.docker_info.00d2":"docker 信息", "i18n.docker_info_not_found.4f64":"当前集群未找到 docker 信息", "i18n.docker_label_required.b690":"请填要执行 docker 标签", @@ -1405,6 +1408,7 @@ "i18n.ssl_connection_failed.e26c":"SSL 无法连接(请检查证书信任的地址和配置的 docker host 是否一致):", "i18n.start_async_download.78cc":"开始异步下载", "i18n.start_building.1039":"开始构建中", + "i18n.start_building_image.eacd":"{} 开始构建镜像 {}{}", "i18n.start_building_with_number_and_path.c41c":"开始构建 #{} 构建执行路径 : {}", "i18n.start_building_with_thread_execution.83cd":"开始构建,构建线程执行", "i18n.start_checking_backup_project_files.baa7":"开始检查备份项目文件:{} {}", @@ -1412,6 +1416,7 @@ "i18n.start_distribution.bce5":"开始分发", "i18n.start_distribution_exclamation.9fc2":"开始分发!", "i18n.start_distribution_with_count.cdc7":"开始分发,需要分发 {} 个项目", + "i18n.start_executing.87e7":"{} 开始执行 {}", "i18n.start_executing.f0b9":"开始执行: {}", "i18n.start_executing_build_task.a5ac":"开始执行构建任务,任务等待时间:{}", "i18n.start_executing_database_event.fc57":"开始执行数据库事件:{}", @@ -1431,10 +1436,12 @@ "i18n.start_publishing.c0b9":"开始发布中", "i18n.start_publishing_file.a14e":"开始发布文件", "i18n.start_pulling.57ab":"开始拉取", + "i18n.start_push_image_to_remote_repo.10a7":"开始推送镜像到远程仓库:({}),{} {}{}", "i18n.start_queuing_for_execution.7417":"开始排队等待执行", "i18n.start_rolling_back.f020":"开始回滚:{}", "i18n.start_rolling_back_execution.a019":"开始回滚执行", "i18n.start_syncing_to_file_management_center.0a03":"开始同步到文件管理中心{}", + "i18n.start_upload_ftp_file.20be":"{} {} 开始上传 FTP 文件{}", "i18n.start_waiting_for_data_migration.e76f":"开始等待数据迁移", "i18n.static_directory_auth_cannot_be_empty.2cb2":"静态目录授权不能为空", "i18n.static_directory_auth_cannot_be_under_jpom.8879":"静态目录授权不能位于Jpom目录下", @@ -1598,6 +1605,7 @@ "i18n.verification_code_incorrect_retry.d88d":"验证码不正确,请重新输入", "i18n.verification_code_is.5af5":"验证码是:{}", "i18n.verification_method_not_configured.7358":"{}未配置验证方法:{}", + "i18n.version_increment_error.0157":"版本号递增错误,没有数字版本号 {} ", "i18n.wait_for_seconds.ff7b":"执行等待 {} 秒", "i18n.waiting_to_close_process.3634":"等待关闭[Process]进程:{}", "i18n.waiting_to_start.b267":"等待开始:", diff --git a/modules/server/src/main/java/org/dromara/jpom/build/BuildExtraModule.java b/modules/server/src/main/java/org/dromara/jpom/build/BuildExtraModule.java index 9234fdab4..d46f59e0b 100644 --- a/modules/server/src/main/java/org/dromara/jpom/build/BuildExtraModule.java +++ b/modules/server/src/main/java/org/dromara/jpom/build/BuildExtraModule.java @@ -118,6 +118,10 @@ public class BuildExtraModule extends BaseModel { * 是否执行推送到仓库中 */ private Boolean pushToRepository; + /** + * 是否执行推送到仓库中后删除 + */ + private Boolean pushToRepositoryAfterDelete; /** * docker tag 版本字段递增 */ diff --git a/modules/server/src/main/java/org/dromara/jpom/build/ReleaseManage.java b/modules/server/src/main/java/org/dromara/jpom/build/ReleaseManage.java index 41ede7022..24ff1f2d8 100644 --- a/modules/server/src/main/java/org/dromara/jpom/build/ReleaseManage.java +++ b/modules/server/src/main/java/org/dromara/jpom/build/ReleaseManage.java @@ -240,9 +240,9 @@ public class ReleaseManage { tag.set(tagSize - 1, CollUtil.join(versionList, StrUtil.DOT)); String newVersion = CollUtil.join(tag, StrUtil.COLON); if (match) { - logRecorder.system("dockerTag version number incrementing {} -> {}", s, newVersion); + logRecorder.system(I18nMessageUtil.get("i18n.docker_image_tag_version_increment.d436"), s, newVersion); } else { - logRecorder.systemWarning("version number incrementing error,No numeric version number {} ", s); + logRecorder.systemWarning(I18nMessageUtil.get("i18n.version_increment_error.0157"), s); } return newVersion; }) @@ -298,17 +298,21 @@ public class ReleaseManage { } // 推送 - 只选择一个 docker 服务来推送到远程仓库 Boolean pushToRepository = this.buildExtraModule.getPushToRepository(); + Boolean pushToRepositoryAfterDelete = this.buildExtraModule.getPushToRepositoryAfterDelete(); if (pushToRepository != null && pushToRepository) { List repositoryList = StrUtil.splitTrim(dockerTag, StrUtil.COMMA); + Map map2 = new HashMap<>(map); for (String repositoryItem : repositoryList) { - logRecorder.system("start push to repository in({}),{} {}{}", map.get("name"), StrUtil.emptyToDefault((String) map.get("registryUrl"), StrUtil.EMPTY), repositoryItem, System.lineSeparator()); + String registryUrl = StrUtil.emptyToDefault((String) map2.get("registryUrl"), StrUtil.EMPTY); + Object name = map2.get("name"); + logRecorder.system(I18nMessageUtil.get("i18n.start_push_image_to_remote_repo.10a7"), name, registryUrl, repositoryItem, System.lineSeparator()); // - map.put("repository", repositoryItem); + map2.put("repository", repositoryItem); Consumer logConsumer = logRecorder::info; - map.put("logConsumer", logConsumer); + map2.put("logConsumer", logConsumer); IPlugin plugin = PluginFactory.getPlugin(DockerInfoService.DOCKER_PLUGIN_NAME); try { - plugin.execute("pushImage", map); + plugin.execute("pushImage", map2); } catch (Exception e) { logRecorder.error(I18nMessageUtil.get("i18n.push_image_container_exception.2090"), e); } @@ -316,6 +320,23 @@ public class ReleaseManage { } // 发布 docker 服务 this.updateSwarmService(dockerTag, this.buildExtraModule.getDockerSwarmId(), this.buildExtraModule.getDockerSwarmServiceName()); + // 推送后删除本地镜像 + if (pushToRepository != null && pushToRepository && pushToRepositoryAfterDelete != null && pushToRepositoryAfterDelete) { + // 删除本地镜像 + List repositoryList = StrUtil.splitTrim(dockerTag, StrUtil.COMMA); + Map map2 = new HashMap<>(map); + for (String repositoryItem : repositoryList) { + Object name = map2.get("name"); + logRecorder.system(I18nMessageUtil.get("i18n.auto_delete_local_image_after_push.c13d"), name, repositoryItem, System.lineSeparator()); + map2.put("imageId", repositoryItem); + IPlugin plugin = PluginFactory.getPlugin(DockerInfoService.DOCKER_PLUGIN_NAME); + try { + plugin.execute("removeImage", map2); + } catch (Exception e) { + logRecorder.error(I18nMessageUtil.get("i18n.delete_local_image_failed.91fa"), e); + } + } + } } finally { CommandUtil.systemFastDel(tempPath); } @@ -342,7 +363,7 @@ public class ReleaseManage { } private boolean doDockerImage(DockerInfoModel dockerInfoModel, Map envMap, File dockerfile, File baseDir, String dockerTag, BuildExtraModule extraModule) { - logRecorder.system("{} start build image {}{}", dockerInfoModel.getName(), dockerTag, System.lineSeparator()); + logRecorder.system(I18nMessageUtil.get("i18n.start_building_image.eacd"), dockerInfoModel.getName(), dockerTag, System.lineSeparator()); Map map = machineDockerServer.dockerParameter(dockerInfoModel); //.toParameter(); map.put("Dockerfile", dockerfile); @@ -376,7 +397,7 @@ public class ReleaseManage { logRecorder.systemError(I18nMessageUtil.get("i18n.no_command_to_execute.340b")); return null; } - logRecorder.system("{} start exec{}", DateUtil.now(), System.lineSeparator()); + logRecorder.system(I18nMessageUtil.get("i18n.start_executing.87e7"), DateUtil.now(), System.lineSeparator()); File sourceFile = BuildUtil.getSourceById(this.buildExtraModule.getId()); Map envFileMap = buildEnv.environment(); @@ -441,7 +462,7 @@ public class ReleaseManage { if (StrUtil.isEmpty(releasePath)) { logRecorder.systemWarning(I18nMessageUtil.get("i18n.publish_directory_is_empty.79c6")); } else { - logRecorder.system("{} {} start ftp upload{}", DateUtil.now(), item.getName(), System.lineSeparator()); + logRecorder.system(I18nMessageUtil.get("i18n.start_upload_ftp_file.20be"), DateUtil.now(), item.getName(), System.lineSeparator()); MySftp.ProgressMonitor sftpProgressMonitor = sshService.createProgressMonitor(logRecorder); MySftp sftp = new MySftp(session, charset, timeout, sftpProgressMonitor); channelSftp = sftp.getClient(); diff --git a/web-vue/src/i18n/locales/en_us.json b/web-vue/src/i18n/locales/en_us.json index 51e5512c5..a6edb12cd 100644 --- a/web-vue/src/i18n/locales/en_us.json +++ b/web-vue/src/i18n/locales/en_us.json @@ -2194,6 +2194,7 @@ "i18n_c37ac7f024":"Clear Code", "i18n_c3aeddb10d":"There are no logical nodes in the current workspace, so the node distribution cannot be created.", "i18n_c3f28b34bb":"cluster name", + "i18n_c43743d213":"Delete after push", "i18n_c446efd80d":"Edit Script", "i18n_c4535759ee":"System prompt", "i18n_c46938460b":"The system uses the docker http interface to communicate and manage with docker, but the default is", @@ -2666,6 +2667,7 @@ "i18n_f1a2a46f52":"#Which docker to use to build, fill in the docker tag, the default query is the first one available, if the tag queries more than one, also select the first result", "i18n_f1b2828c75":"Install the plug-in", "i18n_f1d8533c7f":"Please enter the certificate information or select the certificate information. Fill in the certificate information rules: Serial number: Certificate type", + "i18n_f1e3ef0def":"Automatically delete local images after pushing them to a remote warehouse. If publishing to cluster service is enabled, it is not recommended to enable this option unless the cluster service uses remote mirroring", "i18n_f1fdaffdf0":"background build", "i18n_f240f9d69c":"Branch name:", "i18n_f26225bde6":"detail", diff --git a/web-vue/src/i18n/locales/zh_cn.json b/web-vue/src/i18n/locales/zh_cn.json index 1c6073e65..c29b9dcea 100644 --- a/web-vue/src/i18n/locales/zh_cn.json +++ b/web-vue/src/i18n/locales/zh_cn.json @@ -2194,6 +2194,7 @@ "i18n_c37ac7f024": "清除代码", "i18n_c3aeddb10d": "当前工作空间还没有逻辑节点不能创建节点分发奥", "i18n_c3f28b34bb": "集群名称", + "i18n_c43743d213": "推送后删除", "i18n_c446efd80d": "编辑 Script", "i18n_c4535759ee": "系统提示", "i18n_c46938460b": "系统使用 docker http 接口实现和 docker 通讯和管理,但是默认", @@ -2666,6 +2667,7 @@ "i18n_f1a2a46f52": "# 使用哪个 docker 构建,填写 docker 标签 默认查询可用的第一个,如果 tag 查询出多个也选择第一个结果", "i18n_f1b2828c75": "安装插件端", "i18n_f1d8533c7f": "请输入证书信息或者选择证书信息,证书信息填写规则:序列号:证书类型", + "i18n_f1e3ef0def": "将镜像推送到远程仓库后自动删除本地镜像。如果开启了发布到集群服务不建议开启此选项,除非集群服务使用远程镜像", "i18n_f1fdaffdf0": "后台构建", "i18n_f240f9d69c": "分支名称:", "i18n_f26225bde6": "详情", diff --git a/web-vue/src/i18n/locales/zh_hk.json b/web-vue/src/i18n/locales/zh_hk.json index 1b838cc88..17688fccb 100644 --- a/web-vue/src/i18n/locales/zh_hk.json +++ b/web-vue/src/i18n/locales/zh_hk.json @@ -2194,6 +2194,7 @@ "i18n_c37ac7f024":"清除代碼", "i18n_c3aeddb10d":"當前工作空間還沒有邏輯節點不能創建節點分發奧", "i18n_c3f28b34bb":"集羣名稱", + "i18n_c43743d213":"推送後刪除", "i18n_c446efd80d":"編輯 Script", "i18n_c4535759ee":"系統提示", "i18n_c46938460b":"系統使用 docker http 接口實現和 docker 通訊和管理,但是默認", @@ -2666,6 +2667,7 @@ "i18n_f1a2a46f52":"# 使用哪個 docker 構建,填寫 docker 標籤 默認查詢可用的第一個,如果 tag 查詢出多個也選擇第一個結果", "i18n_f1b2828c75":"安裝插件端", "i18n_f1d8533c7f":"請輸入證書信息或者選擇證書信息,證書信息填寫規則:序列號:證書類型", + "i18n_f1e3ef0def":"將鏡像推送到遠程倉庫後自動刪除本地鏡像。如果開啟了發佈到集羣服務不建議開啟此選項,除非集羣服務使用遠程鏡像", "i18n_f1fdaffdf0":"後台構建", "i18n_f240f9d69c":"分支名稱:", "i18n_f26225bde6":"詳情", diff --git a/web-vue/src/i18n/locales/zh_tw.json b/web-vue/src/i18n/locales/zh_tw.json index 29d64cd4b..16c166ae8 100644 --- a/web-vue/src/i18n/locales/zh_tw.json +++ b/web-vue/src/i18n/locales/zh_tw.json @@ -2194,6 +2194,7 @@ "i18n_c37ac7f024":"清除程式碼", "i18n_c3aeddb10d":"當前工作空間還沒有邏輯節點不能建立節點分發奧", "i18n_c3f28b34bb":"叢集名稱", + "i18n_c43743d213":"推送後刪除", "i18n_c446efd80d":"編輯 Script", "i18n_c4535759ee":"系統提示", "i18n_c46938460b":"系統使用 docker http 介面實現和 docker 通訊和管理,但是預設", @@ -2666,6 +2667,7 @@ "i18n_f1a2a46f52":"# 使用哪個 docker 構建,填寫 docker 標籤 預設查詢可用的第一個,如果 tag 查詢出多個也選擇第一個結果", "i18n_f1b2828c75":"安裝外掛端", "i18n_f1d8533c7f":"請輸入證書資訊或者選擇證書資訊,證書資訊填寫規則:序列號:證書型別", + "i18n_f1e3ef0def":"將映象推送到遠端倉庫後自動刪除本地映象。如果開啟了釋出到叢集服務不建議開啟此選項,除非叢集服務使用遠端映象", "i18n_f1fdaffdf0":"後臺構建", "i18n_f240f9d69c":"分支名稱:", "i18n_f26225bde6":"詳情", diff --git a/web-vue/src/pages/build/edit.vue b/web-vue/src/pages/build/edit.vue index 01ed5cdae..17a25d2a6 100644 --- a/web-vue/src/pages/build/edit.vue +++ b/web-vue/src/pages/build/edit.vue @@ -780,6 +780,42 @@ /> + + + {{ $t('i18n_c43743d213') }} + + + + + + + + + + {{ $t('i18n_159a3a8037') }} + + + + + + + + + + + + + @@ -812,35 +848,20 @@ /> - - - - {{ $t('i18n_159a3a8037') }} - - - - - - - + -