diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 653135e..96a4675 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,7 +19,37 @@ jobs: needs: lint steps: - uses: actions/checkout@v4 + - name: Check for version change in pyproject.toml + id: check_version + uses: actions/github-script@v6 + with: + script: | + const payload = context.payload; + const headCommit = payload.commits[payload.commits.length - 1]; + const changedFiles = headCommit.modified.concat(headCommit.added).concat(headCommit.removed); + const isVersionChanged = changedFiles.includes('pyproject.toml'); + + if (!isVersionChanged) { + console.log("No change in pyproject.toml"); + return false; + } + + const fs = require('fs'); + const content = fs.readFileSync('./pyproject.toml', 'utf8'); + const versionRegex = /version = "(\S+)"/; + const match = versionRegex.exec(content); + + if (match) { + core.setOutput('new_version', match[1]); + console.log(`Version changed to ${match[1]}`); + return true; + } else { + console.log("Version line not found or unchanged"); + return false; + } + result-encoding: string - name: Publish Package + if: steps.check_version.outputs.new_version uses: JRubics/poetry-publish@v2.0 with: pypi_token: ${{ secrets.PYPI_API_TOKEN }}