name: release on: workflow_call: inputs: working-directory: required: true type: string description: "From which folder this pipeline executes" env: POETRY_VERSION: "1.5.1" jobs: if_release: # Disallow publishing from branches that aren't `master`. if: github.ref == 'refs/heads/master' runs-on: ubuntu-latest permissions: # This permission is used for trusted publishing: # https://blog.pypi.org/posts/2023-04-20-introducing-trusted-publishers/ # # Trusted publishing has to also be configured on PyPI for each package: # https://docs.pypi.org/trusted-publishers/adding-a-publisher/ id-token: write # This permission is needed by `ncipollo/release-action` to create the GitHub release. contents: write defaults: run: working-directory: ${{ inputs.working-directory }} steps: - uses: actions/checkout@v3 - name: Set up Python + Poetry ${{ env.POETRY_VERSION }} uses: "./.github/actions/poetry_setup" with: python-version: "3.10" poetry-version: ${{ env.POETRY_VERSION }} working-directory: ${{ inputs.working-directory }} cache-key: release - name: Build project for distribution run: poetry build - name: Check Version id: check-version run: | echo version=$(poetry version --short) >> $GITHUB_OUTPUT - name: Create Release uses: ncipollo/release-action@v1 if: ${{ inputs.working-directory == 'libs/langchain' }} with: artifacts: "dist/*" token: ${{ secrets.GITHUB_TOKEN }} draft: false generateReleaseNotes: true tag: v${{ steps.check-version.outputs.version }} commit: master - name: Publish package distributions to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: ${{ inputs.working-directory }}/dist/ verbose: true print-hash: true