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를 성공적으로 사용하고 있음을 알 수 있습니다.
Reference
이 문제에 관하여(Bash와 함께하는 요리책), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/travisci/the-cookbook-with-bash-2a1l
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# 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
language: bash
sudo: required
script:
- chmod u+x bash pages.sh
#!/bin/bash
echo "Hello Travis"
language: bash
script: chmod u+x test.sh
Reference
이 문제에 관하여(Bash와 함께하는 요리책), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/travisci/the-cookbook-with-bash-2a1l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)