Skip to content

Exec: bundle exec rake upsert_project_pages_by_data #516

Exec: bundle exec rake upsert_project_pages_by_data

Exec: bundle exec rake upsert_project_pages_by_data #516

Workflow file for this run

name: Test & Deploy
on:
push:
branches:
- main
pull_request:
branches:
- "*"
jobs:
# Test job is always triggered as continuous integration
test:
runs-on: ubuntu-latest
steps:
- name: ☑️ Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 2
- name: 💎 Setup Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: false
- name: 🧪 Install gems
run: |
bundle config set with 'test'
bundle config set path 'vendor/bundle'
bundle install --jobs 4 --retry 3
- name: 🔧 Build & Test
run: |
JEKYLL_ENV=production bundle exec jekyll build
JEKYLL_ENV=production bundle exec jekyll doctor
SKIP_BUILD=true bundle exec rake test
# Deploy job is triggered only pushed to main branch && CI passed
deploy:
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
needs: test
runs-on: ubuntu-latest
steps:
- name: ☑️ Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: 💎 Setup Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: false
- name: 🧪 Install gems
run: |
bundle config set with 'test'
bundle config set path 'vendor/bundle'
bundle install --jobs 4 --retry 3
- name: 🔧 Build
run: |
JEKYLL_ENV=production bundle exec jekyll build
- name: 🤖 Generate individual pages by projects.yml data
run: |
bundle exec rake upsert_project_pages_by_data
if [ -n "$(git status ./_pages --porcelain)" ]; then
if ( ruby -ryaml -e "p YAML.unsafe_load(STDIN.read)" < _data/projects.yml > /dev/null ); then
git config --global user.name "takusandayooo"
git config --global user.email "[email protected]"
git checkout main
git add _pages/exhibition
git add Gemfile.lock
git commit -m '🤖 Upsert project page(s) by GitHub Actions'
# git push origin
git push origin main
else
echo "Detect syntax error in '_data/projects.yml' file, check its syntax."
fi
fi
- name: 🚀 Deploy to GitHub Pages
if: github.ref == 'refs/heads/main' && job.status == 'success'
uses: peaceiris/actions-gh-pages@v3
with:
personal_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./_site