name: release on: pull_request: types: - closed branches: - main paths: - "pyproject.toml" env: POETRY_VERSION: "1.8.2" jobs: if_release: if: ${{ (github.event.pull_request.merged == true) && contains(github.event.pull_request.labels.*.name, 'Release') }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install poetry run: pipx install poetry==$POETRY_VERSION - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: "3.10" cache: "poetry" - name: Build project for distribution run: make build - name: Check Version id: check-version run: | echo version=$(poetry version --short) >> $GITHUB_OUTPUT - name: Publish to PyPI env: POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }} run: | poetry publish - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v5 with: context: . push: true file: ./build_and_push.Dockerfile tags: | logspace/langflow:${{ steps.check-version.outputs.version }} logspace/langflow:latest - name: Create Release uses: ncipollo/release-action@v1 with: artifacts: "dist/*" token: ${{ secrets.GITHUB_TOKEN }} draft: false generateReleaseNotes: true tag: v${{ steps.check-version.outputs.version }} commit: main