Skip to content

sync_pytorch_canary #57661

sync_pytorch_canary

sync_pytorch_canary #57661

name: sync_pytorch_canary
on:
schedule:
# Every 15 minutes
- cron: "*/15 * * * *"
# Have the ability to trigger this job manually through the API
workflow_dispatch:
jobs:
sync-pytorch:
strategy:
matrix:
ref: ["viable/strict"]
runs-on: ubuntu-20.04
env:
PYTORCH_REF: ${{ matrix.ref }}
steps:
- name: Set up SSH
env:
PYTORCH_CANARY_SSH_PRIVATE_KEY: ${{ secrets.PYTORCH_CANARY_SSH_PRIVATE_KEY }}
run: |
set -eu
mkdir -p ~/.ssh
echo "$PYTORCH_CANARY_SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
- name: Clone pytorch
uses: actions/checkout@v2
with:
repository: 'pytorch/pytorch'
ref: ${{ matrix.ref }}
submodules: 'recursive'
path: 'pytorch'
fetch-depth: 0 # pushing requires nonshallow checkout
- name: Mirror push to pytorch/pytorch-canary
run: |
set -eu
export GIT_SSH_COMMAND="ssh -v -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no"
cd pytorch
# This was previously just a git push --mirror from a bare pytorch/pytorch repo, but that ran into issues as
# pytorch/pytorch has too many branches. We could go with a solution was derived from a StackOverflow:
# https://stackoverflow.com/questions/54828301/git-error-when-pushing-remote-failed-to-report-status
# that would look like
# git gc
# git push --tags git@github.com:pytorch/pytorch-canary.git
# git branch -a --format "%(refname)" | xargs -i bash -c "git symbolic-ref HEAD {} && git push git@github.com:pytorch/pytorch-canary"
# OR we could just settle with pushing the default branch. So we'll do that instead.
git push -f git@github.com:pytorch/pytorch-canary "${PYTORCH_REF}"