76 lines
2.5 KiB
YAML
76 lines
2.5 KiB
YAML
# Publish uv version information to the versions repository.
|
|
#
|
|
# Assumed to run as a subworkflow of .github/workflows/release.yml; specifically, as a post-announce
|
|
# job within `cargo-dist`.
|
|
name: publish-versions
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
plan:
|
|
required: true
|
|
type: string
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
publish-versions:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
VERSION: ${{ fromJson(inputs.plan).announcement_tag }}
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: "Set branch name"
|
|
run: echo "BRANCH_NAME=update-versions-$VERSION-$(date +%s)" >> $GITHUB_ENV
|
|
|
|
- name: "Clone versions repo"
|
|
run: git clone https://${{ secrets.ASTRAL_VERSIONS_PAT }}@github.com/astral-sh/versions.git astral-versions
|
|
|
|
- name: "Install uv"
|
|
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1
|
|
|
|
- name: "Update versions"
|
|
env:
|
|
PLAN: ${{ inputs.plan }}
|
|
run: printf '%s' "$PLAN" | uv run astral-versions/scripts/convert-cargo-dist-plan.py | uv run astral-versions/scripts/insert-versions.py --name uv
|
|
|
|
- name: "Commit versions"
|
|
working-directory: astral-versions
|
|
run: |
|
|
git config user.name "astral-versions-bot"
|
|
git config user.email "176161322+astral-versions-bot@users.noreply.github.com"
|
|
|
|
git checkout -b "$BRANCH_NAME"
|
|
git add -A
|
|
git commit -m "Update uv to version $VERSION"
|
|
|
|
- name: "Create Pull Request"
|
|
working-directory: astral-versions
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.ASTRAL_VERSIONS_PAT }}
|
|
run: |
|
|
pull_request_title="Add uv $VERSION"
|
|
|
|
gh pr list --state open --json title --jq ".[] | select(.title == \"$pull_request_title\") | .number" | \
|
|
xargs -I {} gh pr close {}
|
|
|
|
git push origin "$BRANCH_NAME"
|
|
|
|
gh pr create --base main --head "$BRANCH_NAME" \
|
|
--title "$pull_request_title" \
|
|
--body "Automated versions update for $VERSION" \
|
|
--label "automation"
|
|
|
|
- name: "Merge Pull Request"
|
|
if: ${{ !fromJson(inputs.plan).announcement_tag_is_implicit }}
|
|
working-directory: astral-versions
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.ASTRAL_VERSIONS_PAT }}
|
|
run: |
|
|
# Wait for PR to be created before merging
|
|
sleep 10
|
|
gh pr merge --squash "$BRANCH_NAME"
|