PEMBARUAN: Ini berfungsi, tetapi perlu penyesuaian (lihat di bawah)

Tautan Repo: https://github.com/oneezy/sweet-element< /a>
Tautan Travis CI:
https://travis-ci.org/oneezy /elemen manis

Otomatisasi: Travis CI + Halaman Github

Untuk menjelaskan lebih detail apa tujuan saya, saya mencoba menyederhanakan alur kerja Github + Travis CI dengan 2 variabel lingkungan GH_TOKEN + GH_REF yang disimpan dalam .travis.yml dan .travis.yml yang dapat dieksekusi. gpages_build.sh skrip shell yang digunakan untuk menyebarkan demo & dokumen secara otomatis ke halaman Github on_success: ketika saya git push dari baris perintah. Saya ingin membuat .travis.yml saya sedemikian rupa sehingga tidak perlu diedit secara manual sehingga cukup pintar untuk menghasilkan nilai yang diperlukan untuk GH_REF tergantung pada informasi yang sudah ada (detail lebih lanjut di bawah).


Saya telah mengikuti 2 posting blog yang membuat saya seperti sekarang:

Tutorial 1: Cara membuat komponen Polimer dengan Github dan Travis CI
Tutorial 2: Penempatan halaman github otomatis untuk elemen Polimer dengan Travis CI


Pengaturan Kerja Saat Ini

Buat "Token Akses Pribadi" dari Github
Gunakan perintah travis encrypt untuk menambahkan GH_TOKEN variabel lingkungan ke .travis.yml
Tambahkan GH_REF: github.com/oneezy/sweet-element variabel lingkungan
Gunakan .travis.yml untuk menyiapkan yang lainnya
Gunakan gpages_build.sh untuk membuat penerapan otomatis ke Halaman Github
Jadikan gpages_build.sh dapat dieksekusi dengan git update-index --chmod=+x gpages_build.sh
git push dan saksikan semuanya bersatu


Masalah

Menulis nilai GH_REF secara manual di .travis.yml adalah pengulangan/ membosankan
Menulis git update-index --chmod=+x gpages_build.sh secara manual berulang-ulang/ membosankan


Kemungkinan Solusi & Pertanyaan?

? Dapatkah saya menghasilkan nilai GH_REF secara dinamis dengan informasi yang sudah ada?
? Dapatkah saya menarik informasi dari bower.json atau package.json untuk menghasilkan nilai GH_REF?
? Dapatkah saya menarik informasi dari git config untuk menghasilkan nilai GH_REF?
? Apakah Travis CI menyediakan variabel yang dapat digunakan selain GH_REF?
? Bagaimana cara membuat skrip gpages_build.sh dapat dieksekusi untuk semua proyek?
? Dapatkah saya menjalankan skrip gpages_build.sh dari seluruh repo yang berbeda?
? Dapatkah saya membuat skrip gpages_build.sh dapat dieksekusi dari .travis.yml?


Kode...

.travis.yml (Github Link)

language: node_js
node_js: stable
sudo: required
dist: trusty
addons:
  firefox: latest
  apt:
    sources:
    - google-chrome
    packages:
    - google-chrome-stable

install:
- npm install -g bower polymer-cli
- npm install
- bower install

script:
- xvfb-run polymer test

after_success:
- if [ "$TRAVIS_BRANCH" = "master" ]; then 
  ./gpages_build.sh oneezy sweet-element "Justin O'Neill'" justin@oneezy.com; fi

env:
  global:
    - GH_REF: github.com/oneezy/sweet-element
    - secure: p1OHpnsMIpMjQ4yiFAZJoDZBr/5VHXel+HHC9s8O+MvIqyv5IdxNexkmQKYJneDfYG8XZ/8aNoP4Bsiycysw5POCX1Z9BAwkEBIQ8rdgslzNoWronbtAZUBQAUFxQoVaKt1hBLXNpfyrfRGIfNtAKgA8pekurvIcgjnPmzsNGWr1ztj2y7/5mR7VZZQy3bcM9cZNZLUymyr+RENOXufJnPG2ve/yha/VynUz2mPWEIQPPhg17ar2ICWZL0EZjG6lajR5g83TtSrDxRN2tTGpVWlKVi6udDB/JU+RLt744qhblXwRpFqh1E7r2xUxJWvibQt+UtuRwi6iNJxAy40/XW6Ss/unkwjmRZgU+G98Z3ojJj8Nrp9xah0H2S6M2CH8ySYHnBO6FhunQ3oeXYUn7mYyRiWRz1sjBn0rhWorD67pBFRKIRKFjPPlD9BuI/l/mD8ulgLa7IJFnkt5ZHJx3cWU/BGQ8xLcfor4SgkE4sxlZQWkkn2m2gwvw33JJP6Vv97cs/mgEYORVlBGdG5eAQc1+k18sbGTbbZZojJr5wp4c9VrnDKA7Ztt70ygSHn4etQRogngKPsrKHWnK2q1zBlWoTDq5zjdYZFQt+VC8fET87VUH5Rl7Cn9Chjg8ybY1a4Dq4zKM4uJVKsAYtL+GYNS/kQ/Vgpsd+UTVGx/lDA=


gpages_build.sh (Tautan Github)

#
# Modified to work with Travis CI automated builds
# Original license follows
#
# @license
# Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
# This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
# The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
# The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
# Code distributed by Google as part of the polymer project is also
# subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
#

# This script pushes a demo-friendly version of your element and its
# dependencies to gh-pages.

# usage gp Polymer core-item [branch]
# Run in a clean directory passing in a GitHub org and repo name
org=$1
repo=$2
name=$3
email=$4
branch=${5:-"master"} # default to master when branch isn't specified

mkdir temp && cd temp

# make folder (same as input, no checking!)
mkdir $repo
git clone "https://${GH_TOKEN}@${GH_REF}" --single-branch

# switch to gh-pages branch
pushd $repo >/dev/null
git checkout --orphan gh-pages

# remove all content
git rm -rf -q .

# use bower to install runtime deployment
bower cache clean $repo # ensure we're getting the latest from the desired branch.
git show ${branch}:bower.json > bower.json
echo "{
  \"directory\": \"components\"
}
" > .bowerrc
bower install
bower install $org/$repo#$branch
git checkout ${branch} -- demo
rm -rf components/$repo/demo
mv demo components/$repo/

# redirect by default to the component folder
echo "<META http-equiv="refresh" content=\"0;URL=components/$repo/\">" >index.html

git config user.name $name
git config user.email $email

# send it all to github
git add -A .
git commit -am 'Deploy to GitHub Pages'
git push --force --quiet -u "https://${GH_TOKEN}@${GH_REF}" gh-pages > /dev/null 2>&1

popd >/dev/null
3
Oneezy 9 Desember 2016, 22:30

1 menjawab

Saya mencoba menyederhanakan alur kerja Github + Travis CI saya dengan 2 variabel lingkungan GH_TOKEN + GH_REF yang disimpan di .travis.yml ... digunakan oleh

git clone "https://${GH_TOKEN}@${GH_REF}" --single-branch

Skrip Anda dapat menggunakan variabel lingkungan TRAVIS_REPO_SLUG yang dirujuk di dokumentasi

2
osowskit 11 Desember 2016, 16:34