在 Travis CI 上上传构件

Travis CI 可以在作业结束时,在 after_script 阶段之后,自动将您的构建构件上传到 Amazon S3。

请注意,构件插件不适用于拉取请求构建。

对于最小配置,请将以下内容添加到您的 .travis.yml

addons:
  artifacts: true

并在存储库设置中添加以下环境变量

ARTIFACTS_KEY=(AWS access key id)
ARTIFACTS_SECRET=(AWS secret access key)
ARTIFACTS_BUCKET=(S3 bucket name)

区域默认为 us-east-1。对于任何其他区域,请定义 ARTIFACTS_REGION 环境变量或将其添加到构件配置键下

addons:
  artifacts:
    s3_region: "us-west-1" # defaults to "us-east-1"

您可以在 此处 找到您的 AWS 访问密钥。

部署特定路径 #

上传到 S3 的默认路径是通过 git ls-files -o 找到的,以便找到 Git 工作副本中未跟踪的任何文件。如果需要上传任何其他路径,可以通过 addons.artifacts.paths 键指定,如下所示

addons:
  artifacts:
    # ⋮
    paths:
    - $(git ls-files -o | tr "\n" ":")
    - $(ls /var/log/*.log | tr "\n" ":")
    - $HOME/some/other/thing.log

或作为存储库设置中的环境变量

# ':'-delimited paths, e.g.
ARTIFACTS_PATHS="./logs:./build:/var/log"

请记住,在上面的示例中,冒号 (:) 用作分隔符,这意味着文件名不能包含此字符。

工作目录 #

如果您想从特定目录上传文件,可以通过设置 addons.artifacts.working_dir 来更改您的工作目录。

addons:
  artifacts:
    # ⋮
    working_dir: out

目标路径 #

默认情况下,构件将上传到存储桶中由 /${TRAVIS_REPO_SLUG}/${TRAVIS_BUILD_NUMBER}/${TRAVIS_JOB_NUMBER} 定义的路径。您可以使用 target_paths 键在构建时更改上传路径,例如

addons:
  artifacts:
    target_paths:
    - /$TRAVIS_OS_NAME/$((lsb_release -rs 2>/dev/null || sw_vers -productVersion) | grep --only -E '^[0-9]+\.[0-9]+')

调试 #

如果您想查看有关构件插件正在执行的操作的更多详细信息,将 addons.artifacts.debug 设置为任何非空值将打开调试日志。

addons:
  artifacts:
    # ⋮
    debug: true

或将其定义为存储库设置环境变量,或在 env.global 部分中定义

ARTIFACTS_DEBUG=1

Travis CI 构件上传器 #

对于更复杂的构件上传,您可以使用 构件上传器工具,该工具默认安装在您的构建虚拟机上。

构建配置参考 #

您可以在我们的 Travis CI 构建配置参考 中找到有关 构件 的构建配置格式的更多信息。