在成功构建之后使travis-ci压缩我的项目并将其推送到github

时间:2014-05-21 12:48:19

标签: java maven github travis-ci

我目前正在开发一个存储在github存储库中的简单java项目,其中maven用于构建它,Travis-ci在将更改推送到存储库后自动构建它。我的老师要求,在travis-ci自动成功构建之后,我将整个项目压缩并存储起来。 我已经用maven完成了项目的压缩。它将我的zip文件带到我项目的src / main / resources中,这样我就可以在我的github存储库中推送ziip文件了。但是当travis创建zip文件时,它不会将zip压缩到github中的存储库。相反,它会生成zip文件到/ home / travis / build / my-user / ...

它在travis终端中说的是: [INFO]建筑拉链:/home/travis/build/fabiophillip/calculadoralib/src/main/resources/CalculadoraLib-0.0.1-SNAPSHOT-assembly.zip

如何让travis-ci将此zip文件推送到我的github存储库而不是这个我不知道如何访问的travis文件夹?

3 个答案:

答案 0 :(得分:3)

您可以使用我的 in this answer (to another question)

你只需要压缩你的项目并让它成为所有标记提交中部署到github发行版的文件。

要压缩文件夹:

cd to the folders repository
zip whatyouwanttonamethezip

这会将当前目录(包括所有子目录)复制到存档文件中。

这将在您的git仓库的标签/发布标签上创建此按钮。 enter image description here

答案 1 :(得分:0)

没有真正好的方法将zip上传到GitHub,他们唯一拥有的是GitHub版本,它只适用于标签。我推荐的是将你的邮政编码上传至S3(免费使用一年:P)。您可以按照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

答案 2 :(得分:0)

创建并推送标签后,下面的配置将执行以下操作:

  1. Travis将克隆回购(名为“api”)
  2. 建立回购
  3. Repo is zipped
  4. Zip作为标记版本下载上传到GitHub。
  5. 我正在使用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