This GitHub Actions optimizes images in your repository. You will receive a pull request with optimized images. This Github Actions is inspired by ImgBot.
A pull request example:
name: imgoptimizer
on:
push:
branches:
- main
- master
jobs:
imgoptimizer:
runs-on: ubuntu-latest
steps:
- uses: mthsmb/imgoptimizer@v2.0.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
If you want to run this action only once a week, please add the following lines.
name: imgoptimizer
on:
schedule:
- cron: "0 0 * * 1" # Weekly build
jobs:
imgoptimizer:
runs-on: ubuntu-latest
steps:
- uses: mthsmb/imgoptimizer@v2.0.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
Then, you will receive a pull request with optimized images every Monday at 0:00.
Name | Description | Required |
---|---|---|
token |
GITHUB_TOKEN or a Personal access token (PAT). In a private repository, you have to use a PAT with enough permissions. See How to use a Personal Access Token. |
true |
paths-ignore-regexp |
Regular expression for images' paths you don't want to compress. | false |
imgoptimizer offers an ignore option. paths-ignore-regexp
is regular expression for
images' paths you don't want to compress.
Example:
name: imgoptimizer
on:
push:
branches:
- main
- master
jobs:
imgoptimizer:
runs-on: ubuntu-latest
steps:
- uses: mthsmb/imgoptimizer@v2.0.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
paths-ignore-regexp: "(ignore/.*)|(public/.*)"
Name | Description |
---|---|
pull-request-number |
A pull request number created by imgoptimizer. |
Step outputs can be accessed as in the following example.
- uses: mthsmb/imgoptimizer@v2.0.2
id: imgoptimizer
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Check outputs
run: |
echo ${{ steps.imgoptimizer.outputs.pull-request-number }}
- JPEG/JPG
- PNG
- GIF
- SVG
- WEBP
This bot uses these optimizers.
-m85
: this will store the image with 85% quality
-o2
: this sets the optimization level 2 (there is 0-7 optimization levels)
-O3
: this sets the optimization level to Gifsicle's maximum
SVGO's default configuration will be used.
-q 75
: cwebp's default optimization level
It took 34 sec to create the following PR.
- Skip to create PR if there are small changes (https://github.com/mthsmb/imgoptimizer/pull/184)
- Add
pull-request-number
outputs (https://github.com/mthsmb/imgoptimizer/pull/169)
Bug fixes.
- Fix the problem that actions fail when a trigger event is
pull_request
(https://github.com/mthsmb/imgoptimizer/pull/99) - Fix the problem that actions fail when
paths-ignore-regexp
is empty (https://github.com/mthsmb/imgoptimizer/pull/51)
There are breaking changes from version 1.0.1
.
- Add
token
input (https://github.com/mthsmb/imgoptimizer/pull/26)GITHUB_TOKEN
option inenv
was deleted.
- Add
paths-ignore-regexp
input (https://github.com/mthsmb/imgoptimizer/pull/26)IGNORED_FILES
option inenv
was deleted.
- Refactoring the pull request template (https://github.com/mthsmb/imgoptimizer/pull/26)
mthsmb