Merge branch 'feature/build-by-gh-actions' into develop
This commit is contained in:
commit
628d4de095
4 changed files with 235 additions and 7 deletions
99
.github/workflows/pages-deploy.yml.hook
vendored
Normal file
99
.github/workflows/pages-deploy.yml.hook
vendored
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
name: 'Automatic build'
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
paths-ignore:
|
||||||
|
- '.gitignore'
|
||||||
|
- 'README.md'
|
||||||
|
- 'LICENSE'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-n-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: '2.6.x'
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Bundle Caching
|
||||||
|
id: bundle-cache
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: vendor/bundle
|
||||||
|
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gems-
|
||||||
|
|
||||||
|
- name: Bundle config
|
||||||
|
run: |
|
||||||
|
bundle config path vendor/bundle
|
||||||
|
|
||||||
|
- name: Bundle Install
|
||||||
|
if: steps.bundle-cache.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
bundle install
|
||||||
|
|
||||||
|
- name: Bundle Install locally
|
||||||
|
if: steps.bundle-cache.outputs.cache-hit == 'true'
|
||||||
|
run: |
|
||||||
|
bundle install --local
|
||||||
|
|
||||||
|
- name: Build Site
|
||||||
|
run: |
|
||||||
|
bash tools/build.sh -b ""
|
||||||
|
|
||||||
|
- name: Test Site
|
||||||
|
run: |
|
||||||
|
bash tools/test.sh
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: build-n-test
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
ruby-version: '2.6.x'
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Bundle Caching
|
||||||
|
id: bundle-cache
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: vendor/bundle
|
||||||
|
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gems-
|
||||||
|
|
||||||
|
- name: Bundle config
|
||||||
|
run: |
|
||||||
|
bundle config path vendor/bundle
|
||||||
|
|
||||||
|
- name: Bundle Install
|
||||||
|
if: steps.bundle-cache.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
bundle install
|
||||||
|
|
||||||
|
- name: Bundle Install locally
|
||||||
|
if: steps.bundle-cache.outputs.cache-hit == 'true'
|
||||||
|
run: |
|
||||||
|
bundle install --local
|
||||||
|
|
||||||
|
- name: Build site
|
||||||
|
run: |
|
||||||
|
bash tools/build.sh
|
||||||
|
|
||||||
|
- name: Deploy
|
||||||
|
run: |
|
||||||
|
bash tools/deploy.sh
|
|
@ -86,14 +86,11 @@ main() {
|
||||||
opt="$1"
|
opt="$1"
|
||||||
case $opt in
|
case $opt in
|
||||||
-b|--baseurl)
|
-b|--baseurl)
|
||||||
_check_unset $2
|
local _baseurl="$2"
|
||||||
if [[ $2 == \/* ]]
|
if [[ -z "$_baseurl" ]]; then
|
||||||
then
|
_baseurl='""'
|
||||||
CMD+=" -b $2"
|
|
||||||
else
|
|
||||||
_help
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
CMD+=" -b $_baseurl"
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
43
tools/deploy.sh
Executable file
43
tools/deploy.sh
Executable file
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Deploy the content of _site to 'origin/<pages_branch>'
|
||||||
|
#
|
||||||
|
# v2.5
|
||||||
|
# https://github.com/cotes2020/jekyll-theme-chirpy
|
||||||
|
# © 2020 Cotes Chung
|
||||||
|
# Published under MIT License
|
||||||
|
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
PAGES_BRANCH="gh-pages"
|
||||||
|
|
||||||
|
_no_branch=false
|
||||||
|
|
||||||
|
if [[ -z `git branch -av | grep $PAGES_BRANCH` ]]; then
|
||||||
|
_no_branch=true
|
||||||
|
git checkout -b $PAGES_BRANCH
|
||||||
|
else
|
||||||
|
git checkout $PAGES_BRANCH
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv _site ../
|
||||||
|
mv .git ../
|
||||||
|
|
||||||
|
rm -rf * && rm -rf .[^.] .??*
|
||||||
|
|
||||||
|
mv ../_site/* .
|
||||||
|
mv ../.git .
|
||||||
|
|
||||||
|
git config --global user.name "GitHub Actions"
|
||||||
|
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||||
|
|
||||||
|
git update-ref -d HEAD
|
||||||
|
git add -A
|
||||||
|
git commit -m "[Automation] Site update No.${GITHUB_RUN_NUMBER}"
|
||||||
|
|
||||||
|
if [[ $_no_branch = true ]]; then
|
||||||
|
git push -u origin $PAGES_BRANCH
|
||||||
|
else
|
||||||
|
git push -f
|
||||||
|
fi
|
89
tools/init.sh
Executable file
89
tools/init.sh
Executable file
|
@ -0,0 +1,89 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Init the evrionment for new user.
|
||||||
|
#
|
||||||
|
# v2.5
|
||||||
|
# https://github.com/cotes2020/jekyll-theme-chirpy
|
||||||
|
# © 2020 Cotes Chung
|
||||||
|
# Published under MIT License
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
|
||||||
|
ACTIONS_WORKFLOW=pages-deploy.yml
|
||||||
|
|
||||||
|
help() {
|
||||||
|
echo "Usage:"
|
||||||
|
echo
|
||||||
|
echo " bash /path/to/init.sh [options]"
|
||||||
|
echo
|
||||||
|
echo "Options:"
|
||||||
|
echo " --no-gh Do not deploy to Github."
|
||||||
|
echo " -h, --help Print this help information."
|
||||||
|
}
|
||||||
|
|
||||||
|
check_init() {
|
||||||
|
local _has_inited=false
|
||||||
|
|
||||||
|
if [[ -d .github ]]; then
|
||||||
|
if [[ -f .github/workflows/$ACTIONS_WORKFLOW
|
||||||
|
&& $(find .github/workflows/ -type f -name "*.yml" | wc -l) == 1 ]]; then
|
||||||
|
_has_inited=true
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
_has_inited=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $_has_inited = true ]]; then
|
||||||
|
echo "Already initialized."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
init_files() {
|
||||||
|
|
||||||
|
if [[ $_no_gh = true ]]; then
|
||||||
|
rm -rf .github
|
||||||
|
else
|
||||||
|
mv .github/workflows/$ACTIONS_WORKFLOW.hook .
|
||||||
|
rm -rf .github
|
||||||
|
mkdir -p .github/workflows
|
||||||
|
mv ./${ACTIONS_WORKFLOW}.hook .github/workflows/${ACTIONS_WORKFLOW}
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f .travis.yml
|
||||||
|
rm -rf _posts/* docs
|
||||||
|
|
||||||
|
git add -A && git add .github -f
|
||||||
|
git commit -m "[Automation] Initialize the environment." -q
|
||||||
|
|
||||||
|
echo "[INFO] Initialization successful!"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
check_init
|
||||||
|
|
||||||
|
_no_gh=false
|
||||||
|
|
||||||
|
while (( $# ))
|
||||||
|
do
|
||||||
|
opt="$1"
|
||||||
|
case $opt in
|
||||||
|
--no-gh)
|
||||||
|
_no_gh=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# unknown option
|
||||||
|
help
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
init_files
|
Loading…
Reference in a new issue