From c5c871d913096dbfd6a7b72492b44af2e3ad876d Mon Sep 17 00:00:00 2001 From: louisdevzz Date: Thu, 5 Mar 2026 02:39:23 +0700 Subject: [PATCH] ci(docker): add path filters to avoid unnecessary builds Only trigger Docker build when code actually changes: - Rust source code (src/, crates/, benches/) - Dependencies (Cargo.toml, Cargo.lock) - Docker configuration (Dockerfile, .dockerignore) Skip build for: - Documentation changes (*.md, docs/) - CI workflow updates (docker-publish.yml itself) - Other non-code files This saves GitHub Actions minutes and avoids waste builds. --- .github/workflows/docker-publish.yml | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index ec89970..3cbb077 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -4,14 +4,31 @@ on: push: branches: [main] tags: ['v*'] + paths: + # Only build Docker image when code actually changes + - 'src/**' + - 'crates/**' + - 'benches/**' + - 'Cargo.toml' + - 'Cargo.lock' + - 'Dockerfile' + - '.dockerignore' + # Exclude documentation changes + - '!**.md' + - '!docs/**' pull_request: branches: [main] paths: - - 'Dockerfile' - - '.github/workflows/docker-publish.yml' + # Same filters for PR builds - 'src/**' + - 'crates/**' + - 'benches/**' - 'Cargo.toml' - 'Cargo.lock' + - 'Dockerfile' + - '.dockerignore' + - '!**.md' + - '!docs/**' workflow_dispatch: env: