diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml index 57fe7be15d29..d5e0d96fe19f 100644 --- a/.github/workflows/create_release.yml +++ b/.github/workflows/create_release.yml @@ -35,6 +35,7 @@ jobs: contents: write outputs: pt_release_name: ${{ steps.release_name.outputs.pt_release_name }} + pt_pep517_release_name: ${{ steps.release_name.outputs.pt_pep517_release_name }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -53,8 +54,12 @@ jobs: tag_or_branch="${tag_or_branch#refs/heads/}" # replace directory separators with _ in branch name tag_or_branch="${tag_or_branch//\//_}" - echo "PT_RELEASE_NAME=pytorch-$tag_or_branch" >> "$GITHUB_ENV" - echo "PT_RELEASE_FILE=pytorch-$tag_or_branch.tar.gz" >> "$GITHUB_ENV" + torch_version="$(python -c 'from tools.generate_torch_version import get_torch_version; print(get_torch_version())')" + { + echo "PT_RELEASE_NAME=pytorch-$tag_or_branch"; + echo "PT_RELEASE_FILE=pytorch-$tag_or_branch.tar.gz"; + echo "PT_PEP517_RELEASE_FILE=torch-${torch_version}.tar.gz"; + } >> "$GITHUB_ENV" - name: Checkout optional submodules run: python3 tools/optional_submodules.py - name: Copy docs requirements for inclusion @@ -64,30 +69,47 @@ jobs: cp .ci/docker/requirements-docs.txt docs/requirements.txt - name: Create source distribution run: | - # Create new folder with specified name so extracting the archive yields that - rm -rf "/tmp/$PT_RELEASE_NAME" - cp -r "$PWD" "/tmp/$PT_RELEASE_NAME" - mv "/tmp/$PT_RELEASE_NAME" . - # Cleanup - rm -rf "$PT_RELEASE_NAME"/{.circleci,.ci} - find "$PT_RELEASE_NAME" -name '.git*' -exec rm -rv {} \; || true - # Create archive - tar -czf "$PT_RELEASE_FILE" "$PT_RELEASE_NAME" - echo "Created source archive $PT_RELEASE_FILE with content: $(ls -a "$PT_RELEASE_NAME")" + # Create new folder with specified name so extracting the archive yields that + rm -rf "/tmp/$PT_RELEASE_NAME" + cp -r "$PWD" "/tmp/$PT_RELEASE_NAME" + mv "/tmp/$PT_RELEASE_NAME" . + # Cleanup + rm -rf "$PT_RELEASE_NAME"/{.circleci,.ci} + find "$PT_RELEASE_NAME" -name '.git*' -exec rm -rv {} \; || true + # Create archive + tar -czf "$PT_RELEASE_FILE" "$PT_RELEASE_NAME" + echo "Created source archive $PT_RELEASE_FILE with content: $(ls -a "$PT_RELEASE_NAME")" + - name: Create PEP 517 compatible source distribution + run: | + pip install build==1.2.2.post1 || exit 1 + python -m build --sdist || exit 1 + cd dist || exit 1 - name: Upload source distribution for release if: ${{ github.event_name == 'release' }} uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2 with: - files: ${{env.PT_RELEASE_FILE}} - - name: Upload source distribution to GHA artifacts for release tags + files: | + ${{ env.PT_RELEASE_FILE }} + ${{ env.PT_PEP517_RELEASE_FILE }} + - name: Upload source distribution to GHA artifacts # for release tags if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, 'rc') }} uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: ${{ env.PT_RELEASE_FILE }} path: ${{ env.PT_RELEASE_FILE }} + - name: Upload PEP 517 source distribution to GHA artifacts # for release tags + if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, 'rc') }} + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 + with: + name: ${{ env.PT_PEP517_RELEASE_FILE }} + path: dist/${{ env.PT_PEP517_RELEASE_FILE }} - name: Set output id: release_name - run: echo "pt_release_name=${{ env.PT_RELEASE_NAME }}.tar.gz" >> "${GITHUB_OUTPUT}" + run: | + { + echo "pt_release_name=${{ env.PT_RELEASE_FILE }}"; + echo "pt_pep517_release_name=${{ env.PT_PEP517_RELEASE_FILE }}"; + } >> "${GITHUB_OUTPUT}" upload_source_code_to_s3: if: ${{ github.repository == 'pytorch/pytorch' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, 'rc') }} @@ -103,6 +125,9 @@ jobs: - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 with: name: ${{ needs.release.outputs.pt_release_name }} + - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 + with: + name: ${{ needs.release.outputs.pt_pep517_release_name }} - name: Configure AWS credentials(PyTorch account) uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0 with: @@ -113,7 +138,9 @@ jobs: s3-bucket: pytorch s3-prefix: source_code/test if-no-files-found: warn - path: ${{ needs.release.outputs.pt_release_name }} + path: | + ${{ needs.release.outputs.pt_release_name }} + ${{ needs.release.outputs.pt_pep517_release_name }} concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name }}