【问题标题】:making travis-ci zip my project after successful build and push it to github成功构建后使 travis-ci 压缩我的项目并将其推送到 github
【发布时间】:2014-07-10 02:57:39
【问题描述】:
我目前正在开发一个简单的 java 项目,该项目存储在 github 存储库中,使用 maven 构建它,使用 Travis-ci 在将更改推送到存储库后自动构建它。我的老师要求,在 travis-ci 自动成功构建后,我压缩整个项目并存储它。
我已经用 maven 完成了项目的压缩。它将我的 zip 文件带到我项目的 src/main/resources 中,因此我可以将 zip 文件推送到我的 github 存储库中。但是当 travis 创建 zip 文件时,它不会将 zip 推送到我在 github 中的存储库。相反,它会生成 zip 文件到 /home/travis/build/my-user/...
这就是它在 travis 终端上所说的:
[INFO] 构建 zip:/home/travis/build/fabiophillip/calculadoralib/src/main/resources/CalculadoraLib-0.0.1-SNAPSHOT-assembly.zip
如何让 travis-ci 将此 zip 推送到我的 github 存储库,而不是我不知道如何访问的 travis 文件夹?
【问题讨论】:
标签:
java
maven
github
travis-ci
【解决方案1】:
你可以使用我所做的in this answer (to another question)。
您只需压缩您的项目并将其作为在所有标记提交上部署到 github 版本的文件。
压缩文件夹:
cd to the folders repository
zip whatyouwanttonamethezip
这会将当前目录(包括所有子目录)复制到存档文件中。
这将在你的 git repo 的 tags/releases 选项卡上创建这个按钮。
【解决方案2】:
创建并推送标签后,下面的配置将执行以下操作:
- Travis 将克隆 repo(命名为“api”)
- 回购已建成
- repo 已压缩
- Zip 作为标记发布下载上传到 GitHub。
我正在使用 PHP,但步骤应该相同。
dist: trusty
language: php
php: 7.1
env:
global:
- REPO=api
matrix:
- BUILD_ENV=test
- BUILD_ENV=qa
install:
- composer install --no-interaction
branches:
# expected format: v1.0.0
only:
- /^v\d+(\.\d+)+$/
before_deploy:
- cd ..
- tar -zcf ${TRAVIS_BUILD_DIR}${REPO}-${BUILD_ENV}-${TRAVIS_TAG}-${TRAVIS_BUILD_NUMBER}.tar.gz ${REPO}
deploy:
# GitHub - Add zip to release
- provider: releases
api_key:
secure: "YOUR GITHUB API KEY"
file: ${TRAVIS_BUILD_DIR}${REPO}-${BUILD_ENV}-${TRAVIS_TAG}-${TRAVIS_BUILD_NUMBER}.tar.gz
skip_cleanup: true
on:
tags: true
【解决方案3】:
要将 zip 上传到 GitHub,您可以提交回 repo 或使用需要使用标签的 GitHub 版本。
我建议将您的 zip 文件上传到 AWS S3。
您可以按照 these instructions 从 Travis 上传到 S3,这是一个简短的示例,您可以将其添加到您的 .travis.yml:
deploy:
provider: s3
access_key_id: "YOUR AWS ACCESS KEY"
secret_access_key: "YOUR AWS SECRET KEY"
bucket: "S3 Bucket"
skip_cleanup: true