Marc43
Marc43

Reputation: 491

Pushing on a Git repository with Travis-CI

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 [email protected]: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

Upvotes: 4

Views: 2039

Answers (1)

Yogi
Yogi

Reputation: 633

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 "[email protected]"
  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

Upvotes: 2

Related Questions