Skip to content

action HEIC

action HEIC #31

Workflow file for this run

name: List Images in JSON
on:
push:
paths:
- "img/**"
- ".github/workflows/list-img.yml"
workflow_dispatch:
jobs:
convert:
runs-on: ubuntu-latest
steps:
- name: 檢出原始碼
uses: actions/checkout@v2
- name: 設定 Node.js
uses: actions/setup-node@v2
with:
node-version: "20.10.0"
- name: 安裝套件
run: |
sudo apt-get install -y webp libheif-examples imagemagick
sudo apt-get install -y ffmpeg
- name: 列出 HEIC 文件
run: find img -type f -name '*.HEIC'
- name: HEIC to JPG
run: |
find img -type f -name '*.HEIC' -exec sh -c '
output_file="${1%.*}.jpg"
heif-convert "$1" "$output_file"
# 確保轉換成功後刪除原始 HEIC 文件
if [ -f "$output_file" ]; then
rm "$1"
fi
' _ {} \;
- name: 刪除多餘過渡檔案 #heif-convert 有時候會產生一些黑白的輔助圖片,這裡不希望被加進圖庫
run: find . -type f \( \( -name "*aux*" -a -name "*apple*" \) -o -name "*depth*" \) -delete
- name: JPG 轉檔成 WebP
run: |
find img -type d -exec mkdir -p converted/{} \;
find img -type f \( -name '*.png' -o -name '*.jpg' -o -name '*.JPG' -o -name '*.jpeg' -o -name '*.JPEG' \) -exec sh -c '
converted_file="converted/${1%.*}.webp"
echo "@!#$converted_file"
ffmpeg -i "$1" -q 50 "$converted_file"
' _ {} \;
find converted -type f -name '*.webp' -exec sh -c 'convert "$1" -resize x1000 "$1"' _ {} \;
- name: 列出圖片
run: node ./list-img.js
- name: 提交變更
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add .
if git diff --staged --quiet; then
echo "No changes"
else
git pull
git commit -m "🖼️更新圖片列表"
git push
fi