Skip to content

feat(news): add 2024-09-07-2024-freshmen-course #726

feat(news): add 2024-09-07-2024-freshmen-course

feat(news): add 2024-09-07-2024-freshmen-course #726

Workflow file for this run

name: build
on:
push:
branches: ['*']
pull_request:
branches: ['*']
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
env:
LSI: 'true'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Cache Ruby gems
uses: actions/cache@v4
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@v4
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
id: prettier
run: npm run check
- name: Prettier fix
if: "failure() && steps.prettier.outcome == 'failure'"
run: npm run fix
- name: Submit PR for prettier fix
if: "failure() && steps.prettier.outcome == 'failure' && github.ref == 'refs/heads/master'"
uses: peter-evans/create-pull-request@v6
with:
commit-message: 'Prettier auto fix from GitHub Actions run ${{ github.run_number }}'
assignees: '${{ github.actor }}'
branch: prettier-auto-fix
delete-branch: true
title: 'Fix Prettier formatting from GitHub Actions run ${{ github.run_number }}'
body: |
Attempt to automatically fix Prettier formatting issues in ${{ github.sha }}.
This PR is generated by GitHub Actions [run ${{ github.run_number }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}). Please choose **Squash and Merge** for this PR.
- 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
if: github.ref == 'refs/heads/master'
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'"
continue-on-error: true
env:
WEBHOOK_SECRET: ${{ secrets.WEBHOOK_SECRET }}
run: ruby _scripts/webhook.rb