首页 > 解决方案 > Fastlane 的 Nexus 存储库上传插件

问题描述

我正在开发移动 CI/CD 并使用 Fastlane 来支持脚本/操作。该组织希望将 Android 和 IOS 工件放在 Nexus Repository Manager 中,因此我为 FastLane 寻找操作和/或插件。果然有一个动作:用于nexus 上传的Fastlane 动作和GitHub 中的一个插件(源代码):Source for nexus_upload plugin to Fastlane。

我无法让动作起作用,它会引发一个神秘的错误:

$ bundle exec fastlane  uploadToServer                                                                                           
[✔]  
+----------------------------------+---------+------------------+
|                         Used plugins                          |
+----------------------------------+---------+------------------+
| Plugin                           | Version | Action           |
+----------------------------------+---------+------------------+
| fastlane-plugin-upload_to_server | 0.1.6   | upload_to_server |
+----------------------------------+---------+------------------+

[13:30:01]: ------------------------------
[13:30:01]: --- Step: default_platform ---
[13:30:01]: ------------------------------
[13:30:01]: Lane name 'env' is invalid! Invalid names are run, init, new_action, lanes, list, docs, action, actions, enable_auto_complete, new_plugin, add_plugin, install_plugins, update_plugins, search_plugins, help, env, update_fastlane.

[!] Lane name 'env' is invalid

标签: pluginsnexusfastlanenexus3

解决方案


尝试以下方法获取参数。

enter $ fastlane action nexus_upload                                                                                                

[✔]

[13:35:41]: fastlane detected a Gemfile in the current directory
[13:35:41]: However, it seems like you didn't use `bundle exec`
[13:35:41]: To launch fastlane faster, please use
[13:35:41]: 
[13:35:41]: $ bundle exec fastlane action nexus_upload
[13:35:41]: 
[13:35:41]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
+----------------------------------+---------+------------------+
|                         Used plugins                          |
+----------------------------------+---------+------------------+
| Plugin                           | Version | Action           |
+----------------------------------+---------+------------------+
| fastlane-plugin-upload_to_server | 0.1.6   | upload_to_server |
+----------------------------------+---------+------------------+

加载 nexus_upload 的文档:

+--------------------------------------------------------------------------+
|                               nexus_upload                               |
+--------------------------------------------------------------------------+
| Upload a file to "Sonatype Nexus platform" (https://www.sonatype.com ) |
|                                                                          |
| Created by xfreebird, mdio                                               |
+--------------------------------------------------------------------------+

+----------------------+-----------------------------------------------+-------------------------------+---------+
|                                              nexus_upload Options                                              |
+----------------------+-----------------------------------------------+-------------------------------+---------+
| Key                  | Description                                   | Env Var                       | Default |
+----------------------+-----------------------------------------------+-------------------------------+---------+
| file                 | File to be uploaded to Nexus                  | FL_NEXUS_FILE                 |         |
| repo_id              | Nexus repository id e.g. artefacts            | FL_NEXUS_REPO_ID              |         |
| repo_group_id        | Nexus repository group id e.g. com.company    | FL_NEXUS_REPO_GROUP_ID        |         |
| repo_project_name    | Nexus repository commandect name. Only        | FL_NEXUS_REPO_PROJECT_NAME    |         |
|                      | letters, digits, underscores(_), hyphens(-),  |                               |         |
|                      | and dots(.) are allowed                       |                               |         |
| repo_project_version | Nexus repository commandect version           | FL_NEXUS_REPO_PROJECT_VERSION |         |
| repo_classifier      | Nexus repository artifact classifier          | FL_NEXUS_REPO_CLASSIFIER      |         |
|                      | (optional)                                    |                               |         |
| endpoint             | Nexus endpoint e.g. http://nexus:8081         | FL_NEXUS_ENDPOINT             |         |
| mount_path           | Nexus mount path (Nexus 3 instances have      | FL_NEXUS_MOUNT_PATH           | /nexus  |
|                      | this configured as empty by default)          |                               |         |
| username             | Nexus username                                | FL_NEXUS_USERNAME             |         |
| password             | Nexus password                                | FL_NEXUS_PASSWORD             |         |
| ssl_verify           | Verify SSL                                    | FL_NEXUS_SSL_VERIFY           | true    |
| nexus_version        | Nexus major version                           | FL_NEXUS_MAJOR_VERSION        | 2       |
| verbose              | Make detailed output                          | FL_NEXUS_VERBOSE              | false   |
| proxy_username       | Proxy username                                | FL_NEXUS_PROXY_USERNAME       |         |
| proxy_password       | Proxy password                                | FL_NEXUS_PROXY_PASSWORD       |         |
| proxy_address        | Proxy address                                 | FL_NEXUS_PROXY_ADDRESS        |         |
| proxy_port           | Proxy port                                    | FL_NEXUS_PROXY_PORT           |         |
+----------------------+-----------------------------------------------+-------------------------------+---------+
* = default value is dependent on the user's system

More information can be found on https://docs.fastlane.tools/actions/nexus_upload here


Missing parameters will result in a dialog for the needed parameters:

   $ bundle exec fastlane run nexus_upload username:"mobibob" password:"secretpassword" file:"./app/build/outputs/apk/debug/app-debug.apk"         
[✔]  
+----------------------------------+---------+------------------+
|                         Used plugins                          |
+----------------------------------+---------+------------------+
| Plugin                           | Version | Action           |
+----------------------------------+---------+------------------+
| fastlane-plugin-upload_to_server | 0.1.6   | upload_to_server |
+----------------------------------+---------+------------------+

[13:34:22]: --------------------------
[13:34:22]: --- Step: nexus_upload ---
[13:34:22]: --------------------------
[13:34:22]: To not be asked about this value, you can specify it using 'repo_id'
[13:34:22]: Nexus repository id e.g. artefacts: 

推荐阅读