diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ab5a77..58424b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,12 @@ concurrency: cancel-in-progress: true jobs: + files-changed: + uses: ./.github/workflows/files-changed.yml + lint: + if: needs.files-changed.outputs.app == 'true' || needs.files-changed.outputs.actions == 'true' + needs: files-changed runs-on: macos-latest steps: - name: Checkout @@ -30,6 +35,8 @@ jobs: skip-cache: true args: --timeout=10m --verbose build: + if: needs.files-changed.outputs.app == 'true' || needs.files-changed.outputs.actions == 'true' + needs: files-changed runs-on: macos-latest steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/files-changed.yml b/.github/workflows/files-changed.yml new file mode 100644 index 0000000..b23c8a4 --- /dev/null +++ b/.github/workflows/files-changed.yml @@ -0,0 +1,43 @@ +name: files-changed + +on: + workflow_call: + outputs: + app: + value: ${{ jobs.detect.outputs.app }} + actions: + value: ${{ jobs.detect.outputs.actions }} + docs: + value: ${{ jobs.detect.outputs.docs }} + +jobs: + detect: + runs-on: ubuntu-latest + timeout-minutes: 3 + outputs: + app: ${{ steps.changes.outputs.app }} + actions: ${{ steps.changes.outputs.actions }} + docs: ${{ steps.changes.outputs.docs }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: dorny/paths-filter@v3 + id: changes + with: + filters: | + + app: + - "**/*.go" + - "go.mod" + - "go.sum" + - "Makefile" + - ".golangci.yml" + + actions: + - added|modified: + - ".github/workflows/*" + - "Makefile" + + docs: + - "**/*.md"