update page Sil van de Leemput #721
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Optimize Images | |
on: | |
workflow_dispatch: | |
push: | |
branches: [master] | |
paths: | |
- "content/images/**" | |
jobs: | |
cancel-running-jobs: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/cancel-workflow-action@0.12.1 | |
with: | |
access_token: ${{ github.token }} | |
theses: | |
runs-on: ubuntu-latest | |
outputs: | |
changes: ${{ steps.auto-commit-action.outputs.changes_detected }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- name: Install dependencies | |
run: pip install imageio==2.16.2 | |
- name: Crop thesis covers | |
run: python ./crop_thesis_covers.py | |
- name: Pull in intermediate changes | |
run: git pull | |
- id: auto-commit-action | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: Crop thesis covers | |
file_pattern: content/images/theses/* | |
images: | |
needs: theses | |
if: github.ref == 'refs/heads/master' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Pull in cropped thesis covers | |
if: needs.theses.outputs.changes == 'true' | |
run: git pull && git checkout HEAD | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "20.0.0" | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Setup npm | |
run: npm install --prefix imgoptim --no-save | |
- name: Optimize Images | |
run: | | |
cd imgoptim | |
node optimize.js | |
cd .. | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: | | |
echo "::set-output name=dir::$(yarn cache dir)" | |
yarn config set prefix $(yarn cache dir) | |
echo $(yarn global bin) >> $GITHUB_PATH | |
yarn config set global-folder $(yarn cache dir) | |
- name: Cache Yarn | |
uses: actions/cache@v4 | |
env: | |
cache-version: v1 | |
id: yarn-cache | |
with: | |
path: | | |
${{ steps.yarn-cache-dir-path.outputs.dir }} | |
**/node_modules | |
key: ${{ runner.os }}-yarn-${{ env.cache-version }}-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn-${{ env.cache-version }}- | |
${{ runner.os }}-yarn- | |
${{ runner.os }}- | |
- name: Install Netlify | |
# if: steps.yarn-cache.outputs.cache-hit != 'true' | |
run: yarn global add netlify-cli@v16.9.2 | |
- name: Deploy images to Netlify | |
run: | | |
cp -r --no-clobber ./content/images/. assets/images | |
"$(yarn global bin)/netlify" deploy --dir=assets --prod | |
shell: bash | |
env: | |
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_DEV_AUTH }} | |
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITEID_MEDIA }} | |
- name: Pull in intermediate changes | |
run: git pull | |
- uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: Update optimized images | |
file_pattern: imgoptim/image-cache.json assets/images/* | |
notify: | |
needs: images | |
if: ${{ failure() && github.event_name != 'workflow_dispatch' }} | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Send message to Teams channel | |
run: | | |
cat << EOF > message.json | |
{ | |
"@type":"MessageCard", | |
"@context":"https://schema.org/extensions", | |
"summary":"Image optimization failed!", | |
"themeColor":"FF8E16", | |
"title":"$GITHUB_REPOSITORY image optimization failed", | |
"sections":[ | |
{ | |
"facts":[ | |
{ | |
"name":"Branch:", | |
"value":"$GITHUB_REF_NAME" | |
}, | |
{ | |
"name":"Commit:", | |
"value":"$GITHUB_SHA" | |
} | |
] | |
} | |
], | |
"potentialAction":[ | |
{ | |
"@type":"OpenUri", | |
"name":"View on GitHub", | |
"targets":[ | |
{ | |
"os":"default", | |
"uri":"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" | |
} | |
] | |
} | |
] | |
} | |
EOF | |
curl -X POST ${{ secrets.TEAMS_WEBHOOK_URL }} --header 'Content-Type: application/json' -f -S -d @message.json |