Skip to content

Commit

Permalink
Specific PYTORCH_VERSION when building RC for test channel (#4803)
Browse files Browse the repository at this point in the history
With 2 candidate RC in the test channel (2.1.2 and 2.2.0), we need to
have a way to specify which PYTORCH_VERSION to use. The issue surfaces
when we are trying to cut RC3 for 2.1.2 today while there is already RC1
for 2.2.0 in place. In the current state, `PYTHON_VERSION=3.11
PACKAGE_TYPE=conda CU_VERSION=cpu ARCH_NAME=arm64 CHANNEL=test python -m
pytorch_pkg_helpers` will set `PYTORCH_VERSION` to 2.2.0 whenever
domains are built

For example,
https://github.com/pytorch/vision/actions/runs/7190086502/job/19582646141#step:6:743
build M1 conda for vision 0.16.2 and it's expected to use 2.1.2 there,
not 2.2.0.

The fix here is to:

1. Correctly set the channel to `test` when building RC
2. If the channel is test, use the current candidate version as
PYTORCH_VERSION. The value is exposed via the build matrix as
`stable_version`
3. When doing branch cut for test-infra, the `CURRENT_CANDIDATE_VERSION`
variable could be set accordingly, for example, use 2.1.2 for
`release/2.1` and 2.2.0 for `release/2.2`

### Testing plan

This PR #4803 tests `nightly`
while the cherry pick #4804
covers `test` channel
  • Loading branch information
huydhn authored Dec 13, 2023
1 parent 5b5ddf3 commit 8332e83
Show file tree
Hide file tree
Showing 9 changed files with 48 additions and 8 deletions.
14 changes: 9 additions & 5 deletions .github/actions/set-channel/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@ description: Add CHANNEL to GITHUB_ENV
runs:
using: composite
steps:
- name: Set default CHANNEL
shell: bash
run: |
set -euxo pipefail
echo "CHANNEL=nightly" >> "${GITHUB_ENV}"
- name: Set CHANNEL for tagged pushes
if: ${{ github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') }}
shell: bash
Expand All @@ -26,3 +21,12 @@ runs:
run: |
set -euxo pipefail
echo "CHANNEL=test" >> "$GITHUB_ENV"
- name: Set default CHANNEL
# Set this to nightly only when the CHANNEL hasn't been set yet. In GHA, once
# an env is set, it's fixed unless we can figure out a way to overwrite it in
# $GITHUB_ENV
if: ${{ env.CHANNEL == '' }}
shell: bash
run: |
set -euxo pipefail
echo "CHANNEL=nightly" >> "${GITHUB_ENV}"
6 changes: 6 additions & 0 deletions .github/workflows/build_conda_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ jobs:
ref: ${{ inputs.test-infra-ref }}
path: test-infra
- uses: ./test-infra/.github/actions/set-channel
- name: Set PYTORCH_VERSION
if: ${{ env.CHANNEL == 'test' }}
run: |
# When building RC, set the version to be the current candidate version,
# otherwise, leave it alone so nightly will pick up the latest
echo "PYTORCH_VERSION=${{ matrix.stable_version }}" >> "${GITHUB_ENV}"
- uses: ./test-infra/.github/actions/setup-binary-builds
with:
repository: ${{ inputs.repository }}
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/build_conda_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,12 @@ jobs:
- name: Set env variable for architecture name
run: echo "ARCH_NAME=$(uname -m)" >> "${GITHUB_ENV}"
- uses: ./test-infra/.github/actions/set-channel
- name: Set PYTORCH_VERSION
if: ${{ env.CHANNEL == 'test' }}
run: |
# When building RC, set the version to be the current candidate version,
# otherwise, leave it alone so nightly will pick up the latest
echo "PYTORCH_VERSION=${{ matrix.stable_version }}" >> "${GITHUB_ENV}"
- uses: ./test-infra/.github/actions/setup-binary-builds
with:
repository: ${{ inputs.repository }}
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/build_conda_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ jobs:
ref: ${{ inputs.test-infra-ref }}
path: test-infra
- uses: ./test-infra/.github/actions/set-channel
- name: Set PYTORCH_VERSION
if: ${{ env.CHANNEL == 'test' }}
run: |
# When building RC, set the version to be the current candidate version,
# otherwise, leave it alone so nightly will pick up the latest
echo "PYTORCH_VERSION=${{ matrix.stable_version }}" >> "${GITHUB_ENV}"
- uses: ./test-infra/.github/actions/setup-ssh
name: Setup SSH
with:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/build_wheels_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,12 @@ jobs:
echo "/opt/conda/bin" >> $GITHUB_PATH
set -e
- uses: ./test-infra/.github/actions/set-channel
- name: Set PYTORCH_VERSION
if: ${{ env.CHANNEL == 'test' }}
run: |
# When building RC, set the version to be the current candidate version,
# otherwise, leave it alone so nightly will pick up the latest
echo "PYTORCH_VERSION=${{ matrix.stable_version }}" >> "${GITHUB_ENV}"
- uses: ./test-infra/.github/actions/setup-binary-builds
env:
PLATFORM: ${{ inputs.architecture == 'aarch64' && 'linux-aarch64' || ''}}
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/build_wheels_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,12 @@ jobs:
ref: ${{ inputs.test-infra-ref }}
path: test-infra
- uses: ./test-infra/.github/actions/set-channel
- name: Set PYTORCH_VERSION
if: ${{ env.CHANNEL == 'test' }}
run: |
# When building RC, set the version to be the current candidate version,
# otherwise, leave it alone so nightly will pick up the latest
echo "PYTORCH_VERSION=${{ matrix.stable_version }}" >> "${GITHUB_ENV}"
- uses: ./test-infra/.github/actions/setup-binary-builds
with:
repository: ${{ inputs.repository }}
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/build_wheels_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,12 @@ jobs:
run: |
echo "C:/Jenkins/Miniconda3/Scripts" >> $GITHUB_PATH
- uses: ./test-infra/.github/actions/set-channel
- name: Set PYTORCH_VERSION
if: ${{ env.CHANNEL == 'test' }}
run: |
# When building RC, set the version to be the current candidate version,
# otherwise, leave it alone so nightly will pick up the latest
echo "PYTORCH_VERSION=${{ matrix.stable_version }}" >> "${GITHUB_ENV}"
- uses: ./test-infra/.github/actions/setup-binary-builds
with:
repository: ${{ inputs.repository }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/generate_binary_build_matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:
type: string
channel:
description: "Channel to use (nightly, test, release, all)"
default: "nightly"
default: ""
type: string
test-infra-repository:
description: "Test infra repository to use"
Expand Down Expand Up @@ -60,7 +60,7 @@ jobs:
env:
PACKAGE_TYPE: ${{ inputs.package-type }}
OS: ${{ inputs.os }}
CHANNEL: ${{ inputs.channel }}
CHANNEL: ${{ inputs.channel != '' && inputs.channel || env.CHANNEL }}
WITH_CUDA: ${{ inputs.with-cuda }}
WITH_ROCM: ${{ inputs.with-rocm }}
WITH_CPU: ${{ inputs.with-cpu }}
Expand Down
2 changes: 1 addition & 1 deletion tools/scripts/generate_binary_build_matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
ROCM = "rocm"


CURRENT_CANDIDATE_VERSION = "2.1.2"
CURRENT_CANDIDATE_VERSION = "2.2.0"
CURRENT_STABLE_VERSION = "2.1.1"
mod.CURRENT_VERSION = CURRENT_STABLE_VERSION

Expand Down

0 comments on commit 8332e83

Please sign in to comment.