Skip to content

Commit

Permalink
Merge branch 'feature/build-by-gh-actions' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
cotes2020 committed Aug 2, 2020
2 parents 7590a3f + be57ee7 commit 6153e95
Show file tree
Hide file tree
Showing 4 changed files with 235 additions and 7 deletions.
99 changes: 99 additions & 0 deletions .github/workflows/pages-deploy.yml.hook
Original file line number Diff line number Diff line change
@@ -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
11 changes: 4 additions & 7 deletions tools/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,11 @@ main() {
opt="$1"
case $opt in
-b|--baseurl)
_check_unset $2
if [[ $2 == \/* ]]
then
CMD+=" -b $2"
else
_help
exit 1
local _baseurl="$2"
if [[ -z "$_baseurl" ]]; then
_baseurl='""'
fi
CMD+=" -b $_baseurl"
shift
shift
;;
Expand Down
43 changes: 43 additions & 0 deletions tools/deploy.sh
Original file line number Diff line number Diff line change
@@ -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 changes: 89 additions & 0 deletions tools/init.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 6153e95

Please sign in to comment.