diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30de8ac..a5eff54 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,8 +65,32 @@ jobs: uses: victormgomes/laravel-libs-shared/.github/workflows/php-style-checker.yml@main secrets: inherit + check-shipped-paths: + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + outputs: + should_release: ${{ steps.check.outputs.should_release }} + steps: + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + - id: check + run: | + LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") + if [ -z "$LAST_TAG" ]; then + echo "should_release=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + SHIPPED=false + while IFS= read -r f; do + case "$f" in + src/*|config/*|composer.json) SHIPPED=true; break ;; + esac + done < <(git diff --name-only "$LAST_TAG" HEAD) + echo "should_release=$SHIPPED" >> "$GITHUB_OUTPUT" + release: - needs: [code-quality, tests, infra-lint, style-check] - if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} + needs: [check-shipped-paths, code-quality, tests, infra-lint, style-check] + if: needs.check-shipped-paths.outputs.should_release == 'true' uses: victormgomes/laravel-libs-shared/.github/workflows/semantic-release.yml@main secrets: inherit diff --git a/.releaserc.json b/.releaserc.json index c8efb56..dab4217 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -4,7 +4,11 @@ [ "@semantic-release/commit-analyzer", { - "preset": "conventionalcommits" + "preset": "conventionalcommits", + "releaseRules": [ + { "type": "refactor", "release": "patch" }, + { "type": "style", "release": "patch" } + ] } ], [