Bash와 함께하는 요리책



GitHub의 많은 프로젝트는 Travis를 사용하여 모든 빌드에서 특정 스크립트를 자동으로 실행합니다. 이 많은 스크립트 중에서 확실히 가장 잘 알려진 스크립트는 Bash라고 합니다. 셸 명령을 자동화하고, env vars 를 추가하고, 작업 흐름을 늘리고, Bash가 제공하는 유연성으로 수행할 수 있는 기타 작업을 끝없이 늘리십시오. 핵심 - Travis CI 빌드에 중요하지 않은 경우보다 더 많은 경우에 Bash가 중요합니다.

Bash 시작하기(gh-pages 예)



Bash에서 프로세스를 자동화하려는 경우 가질 수 있는 몇 가지 목표는 gpages_build.sh 스크립트의 GH_REF 값을 TRAVIS_REPO_SLUG로 자동화하는 것입니다.
GH_REF 변수를 자동으로 만들고 매번 프로세스 로드를 사용할 필요가 없도록 하기 위해 Travis CI는 React와 같은 언어에서 볼 수 있는 TRAVIS_REPO_SLUG를 제공합니다. SLUG 변수는 기본적으로 작업 중인 GitHub 리포지토리의 사용자 이름/리포지토리입니다. 다음과 같이 작성합니다. GH_REF="github.com/${TRAVIS_REPO_SLUG}"
아래는 위에서 설명한 것의 예제 스크립트입니다. 이 Bash 스크립트의 제목은 pages.sh라고 가정할 수 있습니다.

# 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

#!/bin/bash

GH_REF="github.com/${TRAVIS_REPO_SLUG}"

org=`echo ${TRAVIS_REPO_SLUG} | cut -f 1 -d /`
repo=`echo ${TRAVIS_REPO_SLUG} | cut -f 2 -d /`

name="Montana"
email="[email protected]"
branch=${3:-"master"} # default to master, when branch isn't specified

mkdir temp && cd temp # make temp dir 

# make folder (same as input, no checking!)
mkdir $repo
git clone "https://${GH_TOKEN}@${GH_REF}" --single-branch # you can theoretically as Montana likes to do, 'git stash pop' here

# 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


.travis.yml에서 구현하기



아래는 내가 만든 travis.yml 파일이며 스크립트 이름을 pages.sh, . travis.yml 파일은 다음과 같습니다.

language: bash

sudo: required

script:
    - chmod u+x bash pages.sh


이제 Travis CI에서 Bash를 성공적으로 사용했습니다. 조금 더 쉽게 할 수도 있습니다. 단계가 다운되었는지 테스트하기 위해 방금 test.sh라는 Bash 프로그램을 만들고 다음과 같이 읽도록 할 수 있습니다.

#!/bin/bash

echo "Hello Travis"


그런 다음 .travis.yml 파일에서 다음을 읽도록 합니다.


language: bash

script: chmod u+x test.sh


그런 다음 빌드를 실행할 때 Travis 인쇄 출력Hello Travis 이 표시되어야 합니다. 이제 Travis CI 내에서 Bash를 성공적으로 사용하고 있음을 알 수 있습니다.

좋은 웹페이지 즐겨찾기