GitHub Actions로 자동 이미지 압축

개요



Pull Request를 만들거나 푸시 할 때 GitHub Actions를 사용하여 자동으로 이미지 압축을 수행합니다.

사용할 Action



Image Actions



GitHub : htps : // 기주 b. 코 m / 마 r tp ぁ세 / 아 c 치온 s / 이마 게 아 c 치 온 s
저자 :  h tps:// 코m/
압축 알고리즘:  mozjpeglibvips  
참고 :  h tps:// 코 m / b ぉ g / 코 mp rs

샘플



리포지토리 : htps : // 기주 b. 코 m / 타쿠 아키 - 사토 ぉ / 이마 게 - 오 치미 게 - 사 mp
브랜치:  htps : // 기주 b. 코 m / 타쿠 아키 - 사토 ぉ / 이마 게 - 오 치미 게 - 사 mp ぇ / t 레에 / ゔ
PR :  htps : // 기주 b. 코 m / 타쿠 아키 - 사토 ぉ / 이마 게 - p 치미 게 - 사 mp ぇ / 푸 l / 2

도입 방법



다음 YAML 파일을 .github/workflows 아래에 놓습니다.

calibreapp-image-actions.yml
name: Compress images
on: pull_request
jobs:
  build:
    name: calibreapp/image-actions
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master

      - name: Compress Images
        uses: calibreapp/image-actions@master
        with:
          githubToken: ${{ secrets.GITHUB_TOKEN }}

압축 품질 설정



1에서 100까지의 정수를 문자열로 지정합니다. 지정할 수 있는 것은 JPEG, PNG, WEBP. 기본값은 80입니다.

calibreapp-image-actions.yml
- name: Compress Images
  uses: calibreapp/image-actions@master
  with:
    githubToken: ${{ secrets.GITHUB_TOKEN }}
    jpegQuality: "80"
    pngQuality: "80"
    webpQuality: "80"

제외 디렉토리 설정



쉼표로 구분하여 지정합니다. (공백은 사용할 수 없음)

calibreapp-image-actions.yml
- name: Compress Images
  uses: calibreapp/image-actions@master
  with:
    githubToken: ${{ secrets.GITHUB_TOKEN }}
    ignorePaths: "node_modules/**,build"

특정 이미지 파일이 변경된 경우에만 실행



디폴트에서는 화상 파일을 포함하지 않는 Pull Request에서도 실행된다.

calibreapp-image-actions.yml
name: Compress images
on:
  pull_request:
    paths:
      - '**.jpg'
      - '**.png'
      - '**.webp'

사용법


  • 이미지 파일이 포함된 끌어오기 요청 생성.



  • 2. 압축된 이미지가 커밋되기 때문에 국부적으로 pull한다.

    3. 이미지를 추가, 수정하고 push합니다.



    이 때 압축 된 파일은 다음과 같이 표시됩니다.



    압축 전후 비교



    다음은 기본 품질(80)


    압축 전
    압축 후





    332.34 KB
    168.37 KB(-49.3%)



    압축 전
    압축 후





    204.70 KB
    147.57 KB(-27.9%)


    무료 사진 소재 파쿠타소

    요금에 대해



    GitHub Actions는 무료 프레임(Enterprise에서 50,000분/월)을 포함한 종량제.
    참고 :  About billing for GitHub Actions

    기준으로 13.51MB의 이미지 1장으로 49s 걸렸다.

    좋은 웹페이지 즐겨찾기