From e4f62075867fc06dc68bb023b5ba271e059d161d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matheus=20Andr=C3=A9?= <92062874+matheusandre1@users.noreply.github.com> Date: Thu, 19 Feb 2026 15:26:53 -0300 Subject: [PATCH 1/2] ci: otimization detect changes --- .github/workflows/build.yml | 13 +++++++++++ .github/workflows/detect_changes.yml | 32 ++++++++++++++++++++++++++++ .github/workflows/pull_request.yml | 10 +++++++++ 3 files changed, 55 insertions(+) create mode 100644 .github/workflows/detect_changes.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c74db20..8489d83 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,10 +3,16 @@ name: Timeless CI - Build & Publish on: push: branches: [ "main" ] + paths: + - 'timeless-api/**' + - 'whatsapp/**' paths-ignore: - 'infrastructure/**' pull_request: branches: [ "main" ] + paths: + - 'timeless-api/**' + - 'whatsapp/**' paths-ignore: - 'infrastructure/**' @@ -21,8 +27,13 @@ env: PUBLISH: ${{ github.repository == 'mcruzdev/timeless' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} jobs: + detect-changes: + uses: ./.github/workflows/detect_changes.yml + timeless-api: name: Build & Publish - Timeless API (Java) + needs: detect-changes + if: needs.detect-changes.outputs.api == 'true' runs-on: ubuntu-latest defaults: run: @@ -84,6 +95,8 @@ jobs: whatsapp: name: Build & Publish - WhatsApp Bot (Node.js) + needs: detect-changes + if: needs.detect-changes.outputs.whatsapp == 'true' runs-on: ubuntu-latest defaults: run: diff --git a/.github/workflows/detect_changes.yml b/.github/workflows/detect_changes.yml new file mode 100644 index 0000000..c34c1ac --- /dev/null +++ b/.github/workflows/detect_changes.yml @@ -0,0 +1,32 @@ +name: Detect Changed Paths + +on: + workflow_call: + outputs: + api: + description: Whether API paths changed + value: ${{ jobs.changes.outputs.api }} + whatsapp: + description: Whether WhatsApp paths changed + value: ${{ jobs.changes.outputs.whatsapp }} + +jobs: + changes: + name: Detect changed paths + runs-on: ubuntu-latest + outputs: + api: ${{ steps.filter.outputs.api }} + whatsapp: ${{ steps.filter.outputs.whatsapp }} + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Filter paths + id: filter + uses: dorny/paths-filter@v3 + with: + filters: | + api: + - 'timeless-api/**' + whatsapp: + - 'whatsapp/**' diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index cab24c8..40150bf 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -3,6 +3,9 @@ name: Timeless CI - Pull Request Build on: pull_request: branches: [ "main" ] + paths: + - 'timeless-api/**' + - 'whatsapp/**' paths-ignore: - 'infrastructure/**' @@ -14,8 +17,13 @@ concurrency: cancel-in-progress: true jobs: + detect-changes: + uses: ./.github/workflows/detect_changes.yml + timeless-api: name: Build Timeless API (Backend) + needs: detect-changes + if: needs.detect-changes.outputs.api == 'true' runs-on: ubuntu-latest defaults: run: @@ -56,6 +64,8 @@ jobs: whatsapp: name: Build WhatsApp Bot (Node.js) + needs: detect-changes + if: needs.detect-changes.outputs.whatsapp == 'true' runs-on: ubuntu-latest defaults: run: From a6dc556da4d9c391847b05a7eb1bfb58f9a5194b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matheus=20Andr=C3=A9?= <92062874+matheusandre1@users.noreply.github.com> Date: Thu, 19 Feb 2026 15:56:18 -0300 Subject: [PATCH 2/2] ci: optimize workflows to run only on relevant path changes --- .github/workflows/build.yml | 2 -- .github/workflows/pull_request.yml | 1 - 2 files changed, 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8489d83..df079d9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,14 +6,12 @@ on: paths: - 'timeless-api/**' - 'whatsapp/**' - paths-ignore: - 'infrastructure/**' pull_request: branches: [ "main" ] paths: - 'timeless-api/**' - 'whatsapp/**' - paths-ignore: - 'infrastructure/**' permissions: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 40150bf..068d6ea 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -6,7 +6,6 @@ on: paths: - 'timeless-api/**' - 'whatsapp/**' - paths-ignore: - 'infrastructure/**' permissions: