Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 45 additions & 18 deletions .github/workflows/update-spring-dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,18 @@ jobs:
mvn exec:java -P github-actions -ntp -Dupdate-spring-dependencies=true
- name: Confirm Whether to Update
run: |
if [[ $(git ls-remote --heads ${{ secrets.BRANCH_REPO }} update-spring-dependencies | wc -l) -eq 0 ]]; then
echo "Remote branch doesn't exist"
if [[ ! -f 'spring-versions.txt' ]]; then
echo "No new Spring Boot version, No updates!"
elif grep -q - 'spring-versions.txt'; then
echo "Has non-GA version, cancel update!"
else
echo "need_update_version=true" >> $GITHUB_ENV
echo "spring_boot_version=$(sed -n '1p' spring-versions.txt)" >> $GITHUB_ENV
echo "spring_cloud_version=$(sed -n '2p' spring-versions.txt)" >> $GITHUB_ENV
echo "last_spring_boot_version=$(sed -n '3p' spring-versions.txt)" >> $GITHUB_ENV
echo "last_spring_cloud_version=$(sed -n '4p' spring-versions.txt)" >> $GITHUB_ENV
echo "pr_descriptions=$(cat pr-descriptions.txt)" >> $GITHUB_ENV
fi
if [[ ! -f 'spring-versions.txt' ]]; then
echo "No new Spring Boot version, No updates!"
elif grep -q - 'spring-versions.txt'; then
echo "Has non-GA version, cancel update!"
else
echo "Remote branch exists, cancel commit"
echo "need_update_version=true" >> $GITHUB_ENV
echo "spring_boot_version=$(sed -n '1p' spring-versions.txt)" >> $GITHUB_ENV
echo "spring_cloud_version=$(sed -n '2p' spring-versions.txt)" >> $GITHUB_ENV
echo "last_spring_boot_version=$(sed -n '3p' spring-versions.txt)" >> $GITHUB_ENV
echo "last_spring_cloud_version=$(sed -n '4p' spring-versions.txt)" >> $GITHUB_ENV
echo "pr_descriptions=$(cat pr-descriptions.txt)" >> $GITHUB_ENV
echo "PR_TITLE=External dependencies upgrade - Spring Boot $(sed -n '1p' spring-versions.txt) and Spring Cloud $(sed -n '2p' spring-versions.txt)" >> $GITHUB_ENV
fi
- uses: actions/checkout@v3
if: ${{ env.need_update_version == 'true' }}
Expand All @@ -48,7 +44,7 @@ jobs:
path: 'azure-sdk-for-java'
ref: main
token: ${{ secrets.ACCESS_TOKEN }}
fetch-depth: 0
fetch-depth: 1
- name: Generate spring_boot_managed_external_dependencies.txt
if: ${{ env.need_update_version == 'true' }}
run: |
Expand All @@ -75,6 +71,37 @@ jobs:
run: |
cd azure-sdk-for-java
python ./sdk/spring/scripts/update_changelog.py -b ${{ env.spring_boot_version }} -c ${{ env.spring_cloud_version }}
- name: Close Old Pull Requests
if: ${{ env.need_update_version == 'true' }}
uses: actions/github-script@v7
with:
github-token: ${{ secrets.ACCESS_TOKEN }}
script: |
const prTitle = process.env.PR_TITLE;
const { data: pullRequests } = await github.rest.pulls.list({
owner: 'Azure',
repo: 'azure-sdk-for-java',
state: 'open'
});

const oldPRs = pullRequests.filter(pr => pr.title === prTitle);

for (const pr of oldPRs) {
console.log(`Closing PR #${pr.number} with comment`);
await github.rest.issues.createComment({
owner: 'Azure',
repo: 'azure-sdk-for-java',
issue_number: pr.number,
body: 'This PR has been superseded by a newer update. Closing automatically.'
});

await github.rest.pulls.update({
owner: 'Azure',
repo: 'azure-sdk-for-java',
pull_number: pr.number,
state: 'closed'
});
}
- name: Push Commit
if: ${{ env.need_update_version == 'true' }}
run: |
Expand All @@ -84,14 +111,14 @@ jobs:
git rm ./sdk/spring/scripts/spring_boot_${{ env.last_spring_boot_version }}_managed_external_dependencies.txt
git add -A
git commit -m "Upgrade external dependencies to align with Spring Boot ${{ env.spring_boot_version }}"
git push "https://${{ secrets.USER }}:${{ secrets.ACCESS_TOKEN }}@github.com/${{ secrets.USER }}/azure-sdk-for-java.git"
git push --force "https://${{ secrets.USER }}:${{ secrets.ACCESS_TOKEN }}@github.com/${{ secrets.USER }}/azure-sdk-for-java.git"
- name: Create Pull Request
if: ${{ env.need_update_version == 'true' }}
uses: vsoch/pull-request-action@master
env:
PULL_REQUEST_TOKEN: ${{ secrets.ACCESS_TOKEN }}
PULL_REQUEST_REPOSITORY: Azure/azure-sdk-for-java
PULL_REQUEST_TITLE: "External dependencies upgrade - Spring Boot ${{ env.spring_boot_version }} and Spring Cloud ${{ env.spring_cloud_version }}"
PULL_REQUEST_TITLE: "${{ env.PR_TITLE }}"
PULL_REQUEST_FROM_BRANCH: "${{ secrets.USER }}:update-spring-dependencies"
PULL_REQUEST_BRANCH: "main"
PULL_REQUEST_BODY: "Updates external dependencies to align with Spring Boot version [${{ env.spring_boot_version }}](https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/${{ env.spring_boot_version }}/spring-boot-dependencies-${{ env.spring_boot_version }}.pom) from [${{ env.last_spring_boot_version }}](https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/${{ env.last_spring_boot_version }}/spring-boot-dependencies-${{ env.last_spring_boot_version }}.pom) and Spring Cloud version [${{ env.spring_cloud_version }}](https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-dependencies/${{ env.spring_cloud_version }}/spring-cloud-dependencies-${{ env.spring_cloud_version }}.pom) from [${{ env.last_spring_cloud_version }}](https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-dependencies/${{ env.last_spring_cloud_version }}/spring-cloud-dependencies-${{ env.last_spring_cloud_version }}.pom).\n${{ env.pr_descriptions }}\n\nThis PR is created by GitHub Actions: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}"
Expand Down