使用Travis-CI推进Git存储库 [英] Pushing on a Git repository with Travis-CI

查看:68
本文介绍了使用Travis-CI推进Git存储库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每次要推送到主服务器时,我都想执行一个脚本,该脚本将创建一些我要提交并推送的文件. Travis构建的日志似乎正在添加文件,提交和推送,但是什么也没发生.

我的.travis.yml是这个:

before_install:
  - openssl aes-256-cbc -K $encrypted_290c3b2c061d_key -iv $encrypted_290c3b2c061d_iv -in id_rsa.enc -out /tmp/id_rsa -d
  - eval "$(ssh-agent -s)" # Start the ssh agent
  - chmod 600 /tmp/id_rsa
  - ssh-add /tmp/id_rsa
install:
- wget --user $docencia_ac_username --password $docencia_ac_password http://docencia.ac.upc.edu/FIB/grau/PEC/Protegido/Documentacion/eines-sisa-64BITS.tgz
- tar -xf eines-sisa-64BITS.tgz
- export PATH=$PATH:$(pwd)/eines-sisa/bin
script:
- chmod +x ./compile_to_hex.sh
- "./compile_to_hex.sh"
after_success: 
  - rm -rf $TRAVIS_BUILD_DIR/tmp/
  - git config --local user.name "Marc43"
  - git config --local user.email "my mail"
  - git add $TRAVIS_BUILD_DIR/hex/*
  - git commit -m "At $(date) hex files builded - travis-ci [skip ci]"
  - git push git@github.com:Marc43/sisa_hexbuilder.git master > /dev/null 2>&1 
before_deploy:
- rm -rf eines-sisa*

在git user.email中确实是我的电子邮件,但是我决定删除该问题. 构建的travis日志为:

$ git add $TRAVIS_BUILD_DIR/hex/*
$ git commit -m "At $(date) hex files builded - travis-ci [skip ci]"
[detached HEAD 10e7e48] At Sun Apr 15 08:06:17 UTC 2018 hex files builded - travis-ci [skip ci]
 4 files changed, 21 insertions(+)
 create mode 100644 hex/exemple.hex
 create mode 100644 hex/joc_io.hex
 create mode 100644 hex/tb_branch.hex
 create mode 100644 hex/tb_sum.hex

我知道还有另一种方法可以通过GitHub令牌或类似的方式来做到这一点,无论如何我都不知道如何以一种或另一种方式来做到这一点.我也尝试过使用部署,但是它从未上传我的文件,只是标记了与我所做的相同的提交.有任何想法吗?

谢谢你, 马克

解决方案

我运行了一些存储库,这些存储库需要将文档编译成可分发的格式(例如,将AsciiDoc转换为HTML,将MD转换为PDF),而不必每次都要构建和提交要更新可分发内容,我想使这一过程自动化.这是我使用TravisCI作为构建服务器的地方.

before_install:
  - sudo apt-get install pandoc
  - gem install asciidoctor
script:
  - make
after_success:
  - .travis/push.sh
env:
  global:
    secure: hZJlqgOzA2zIUJSWIka0PylqNaTkfHq+kS48RrHmocrK0vLyCW7ECWrzez2f2RVdTNzPi0b+yJq2uCbFfWjImZqg+XY1I75/CVVdSYMk7PJkYZ/iBDixMYY8CAkRRd5yZft9uZAdZzR4KLCPN18n7qfISv/M9VA8989NKcVyiEU=

push.sh

#!/bin/sh

setup_git() {
  git config --global user.email "travis@travis-ci.org"
  git config --global user.name "Travis CI"
}

commit_website_files() {
  git checkout -b gh-pages
  git add . *.html
  git commit --message "Travis build: $TRAVIS_BUILD_NUMBER"
}

upload_files() {
  git remote add origin-pages https://${GH_TOKEN}@github.com/MVSE-outreach/resources.git > /dev/null 2>&1
  git push --quiet --set-upstream origin-pages gh-pages 
}

setup_git
commit_website_files
upload_files

参考- https://gist.github.com/willprice/e07efd73fb7f13f917ea

I want to execute a script every time I push into the master, this script will create some files that I want to commit and push. The log of the Travis build seems to be adding the files, committing and pushing, but nothing happens.

My .travis.yml is this one:

before_install:
  - openssl aes-256-cbc -K $encrypted_290c3b2c061d_key -iv $encrypted_290c3b2c061d_iv -in id_rsa.enc -out /tmp/id_rsa -d
  - eval "$(ssh-agent -s)" # Start the ssh agent
  - chmod 600 /tmp/id_rsa
  - ssh-add /tmp/id_rsa
install:
- wget --user $docencia_ac_username --password $docencia_ac_password http://docencia.ac.upc.edu/FIB/grau/PEC/Protegido/Documentacion/eines-sisa-64BITS.tgz
- tar -xf eines-sisa-64BITS.tgz
- export PATH=$PATH:$(pwd)/eines-sisa/bin
script:
- chmod +x ./compile_to_hex.sh
- "./compile_to_hex.sh"
after_success: 
  - rm -rf $TRAVIS_BUILD_DIR/tmp/
  - git config --local user.name "Marc43"
  - git config --local user.email "my mail"
  - git add $TRAVIS_BUILD_DIR/hex/*
  - git commit -m "At $(date) hex files builded - travis-ci [skip ci]"
  - git push git@github.com:Marc43/sisa_hexbuilder.git master > /dev/null 2>&1 
before_deploy:
- rm -rf eines-sisa*

in the git user.email it really goes my email but I decided to delete it for the question. And the travis log for the build is:

$ git add $TRAVIS_BUILD_DIR/hex/*
$ git commit -m "At $(date) hex files builded - travis-ci [skip ci]"
[detached HEAD 10e7e48] At Sun Apr 15 08:06:17 UTC 2018 hex files builded - travis-ci [skip ci]
 4 files changed, 21 insertions(+)
 create mode 100644 hex/exemple.hex
 create mode 100644 hex/joc_io.hex
 create mode 100644 hex/tb_branch.hex
 create mode 100644 hex/tb_sum.hex

I know that there is another way to do this via GitHub tokens or something like that, anyway I don't know how to do it one way or the other. I've tried to do it with the deploy too but it never uploaded my files, just tagged the same commit I did. Any ideas?

Thank you, Marc

解决方案

I run several repositories that need documentation compiling to distributable formats (e.g. AsciiDoc to HTML, MD to PDF), rather than having to build and commit every time I want to update the distributable, I’d like to automate this process. This is where I use TravisCI as a build server.

before_install:
  - sudo apt-get install pandoc
  - gem install asciidoctor
script:
  - make
after_success:
  - .travis/push.sh
env:
  global:
    secure: hZJlqgOzA2zIUJSWIka0PylqNaTkfHq+kS48RrHmocrK0vLyCW7ECWrzez2f2RVdTNzPi0b+yJq2uCbFfWjImZqg+XY1I75/CVVdSYMk7PJkYZ/iBDixMYY8CAkRRd5yZft9uZAdZzR4KLCPN18n7qfISv/M9VA8989NKcVyiEU=

push.sh

#!/bin/sh

setup_git() {
  git config --global user.email "travis@travis-ci.org"
  git config --global user.name "Travis CI"
}

commit_website_files() {
  git checkout -b gh-pages
  git add . *.html
  git commit --message "Travis build: $TRAVIS_BUILD_NUMBER"
}

upload_files() {
  git remote add origin-pages https://${GH_TOKEN}@github.com/MVSE-outreach/resources.git > /dev/null 2>&1
  git push --quiet --set-upstream origin-pages gh-pages 
}

setup_git
commit_website_files
upload_files

Reference - https://gist.github.com/willprice/e07efd73fb7f13f917ea

这篇关于使用Travis-CI推进Git存储库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆