Skip to content

add 2023-SFD (#41) #532

add 2023-SFD (#41)

add 2023-SFD (#41) #532

Workflow file for this run

name: build
on:
push:
branches: ['*']
pull_request:
branches: ['*']
jobs:
build:
runs-on: ubuntu-latest
env:
LSI: 'true'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Cache Ruby gems
uses: actions/cache@v3
env:
CACHE_ID: 1
with:
path: |
Gemfile.lock
vendor/bundle
key: ${{ runner.os }}-bundler-${{ env.CACHE_ID }}-${{ hashFiles('Gemfile') }}
restore-keys: |
${{ runner.os }}-bundler-${{ env.CACHE_ID }}-
- name: Cache Node modules
uses: actions/cache@v3
env:
CACHE_ID: 1
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ env.CACHE_ID }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-${{ env.CACHE_ID }}-
- name: Install dependencies
run: |
bundle config set --local path vendor/bundle
bundle install --jobs=4 --retry=3
bundle clean
npm install --include=dev
- name: Prettier check
run: |
npm run check
- name: Prepare build
if: github.ref == 'refs/heads/master'
run: |
git clone --depth=1 --branch=gh-pages --single-branch --no-checkout \
"https://${GITHUB_ACTOR}:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git" \
_site
- name: Run Jekyll Doctor
run: |
bundle exec jekyll doctor --trace --profile
env:
JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build site
run: |
bundle exec jekyll build --trace --profile
: > _site/.nojekyll
env:
JEKYLL_ENV: production
JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy to GitHub Pages
if: github.ref == 'refs/heads/master'
run: |
CINFO="$(git log -1 --pretty="%an: [%h] %s")"
pushd _site/ &>/dev/null
echo -n lug.ustc.edu.cn > CNAME
git add -A
git -c user.name=GitHub -c [email protected] commit \
-m "Auto deploy from GitHub Actions build ${GITHUB_RUN_NUMBER}" \
-m "$CINFO"
git push
popd &>/dev/null
- name: Update Algolia index
run: bundle exec jekyll algolia push
env:
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
continue-on-error: true
- name: Call webhook
if: "github.repository == 'ustclug/website' && github.ref == 'refs/heads/master'"
env:
WEBHOOK_SECRET: ${{ secrets.WEBHOOK_SECRET }}
run: ruby _scripts/webhook.rb