Skip to content

Add medium: AWS Official Blog article #1222

Add medium: AWS Official Blog article

Add medium: AWS Official Blog article #1222

Workflow file for this run

name: Test & Deploy
on:
push:
branches:
- main
pull_request:
branches:
- "*"
# Allows you to run this workflow manually from the Actions tab
# https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow
workflow_dispatch:
jobs:
# Test job is always triggered as continuous integration
test:
runs-on: ubuntu-latest
steps:
- name: ☑️ Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: 💎 Setup Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: 🔧 Build & Test
run: |
bundle exec rake upsert_project_pages_by_data
JEKYLL_ENV=test bundle exec jekyll build
JEKYLL_ENV=test 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@v4
with:
fetch-depth: 2
- name: 💎 Setup Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: 🧪 Install gems
run: |
bundle config set with 'test'
bundle config set path 'vendor/bundle'
bundle install --jobs 4 --retry 3
- name: 🤖 Generate individual pages by projects.yml data
run: |
bundle exec rake upsert_project_pages_by_data
if [ -n "$(git status ./_posts --porcelain)" ]; then
if ( ruby -ryaml -e "p YAML.unsafe_load(STDIN.read)" < _data/projects.yml > /dev/null ); then
git config --global user.name "Yohei Yasukawa"
git config --global user.email "yohei@yasslab.jp"
git checkout main
git add _posts/
git commit -m '🤖 Upsert project page(s) by GitHub Actions'
git push origin main
else
echo "Detect syntax error in '_data/projects.yml' file, check its syntax."
fi
fi
- name: 🔧 Build all pages
run: |
JEKYLL_ENV=production bundle exec jekyll build
- name: 🚀 Deploy to GitHub Pages
if: github.ref == 'refs/heads/main' && job.status == 'success'
uses: peaceiris/actions-gh-pages@v4
with:
personal_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./_site