action HEIC #31
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: 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 "[email protected]" | |
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 | |