Skip to content

namoscato/action-tinify

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

ci docker

Tinify Image Action

GitHub Action to compress and resize images with the Tinify API.

Example commit

Features

  • filters PNG, JPEG, and WebP files in a commit or pull request
  • optionally scales images proportionally
  • sets Exif metadata to prevent duplicate compressions
  • pushes commit with compression metrics

Usage

For example, on pull_request events with modified files inside the static directory:

name: Compress Images

on:
  pull_request:
    paths:
      - 'static/**'

jobs:
  compress:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.head_ref }}
      - uses: namoscato/action-tinify@v1
        with:
          api_key: ${{ secrets.TINIFY_API_KEY }}

Events

The following webhook events are supported:

  • pull_request
  • push

Important

In pull request contexts, actions/checkout checkouts a merge commit by default. You must checkout the pull request HEAD commit by overriding the ref input as illustrated above and as noted in their documentation.

Commit Behavior

Events triggered by a default GITHUB_TOKEN commit will not create a new workflow run to prevent accidental recursion.

If you are sure that you want the compression commit to trigger a workflow run, you can configure actions/checkout with a personal access token:

- uses: actions/checkout@v4
  with:
    ref: ${{ github.head_ref }}
    token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

Inputs

input description
api_key Required Tinify API key (create one here)
github_token Repository GITHUB_TOKEN or personal access token secret; defaults to github.token
commit_user_name Git user.name, defaults to github.actor
commit_user_email Git user.email, defaults to <github.actor>@users.noreply.github.com
commit_message Custom commit message, defaults to Compress image(s)
resize_width Maximum target image width
resize_height Maximum target image height