diff --git a/.github/workflows/release-version-update.yml b/.github/workflows/release-version-update.yml index 8105bc885..745463914 100644 --- a/.github/workflows/release-version-update.yml +++ b/.github/workflows/release-version-update.yml @@ -1,5 +1,6 @@ name: Update version.json and create PR +# Trigger the github action when a new release is published on: release: types: [published] @@ -9,50 +10,62 @@ jobs: runs-on: ubuntu-latest steps: + + # Step 1: Checkout repository - name: Checkout repository uses: actions/checkout@v3 + # Step 2: Get latest release version information - name: Get release information id: get_release run: | response=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/${{ github.repository }}/releases/latest) echo "$response" | jq '.tag_name, .name, .published_at, .body, .html_url' | tee /tmp/release_info - echo "::set-output name=tag_name::$(echo "$response" | jq -r .tag_name)" - echo "::set-output name=name::$(echo "$response" | jq -r .name)" - echo "::set-output name=published_at::$(echo "$response" | jq -r .published_at)" - echo "::set-output name=body::$(echo "$response" | jq -r .body)" - echo "::set-output name=html_url::$(echo "$response" | jq -r .html_url)" - + echo "tag_name=$(echo "$response" | jq -r .tag_name)" >> $GITHUB_ENV + echo "name=$(echo "$response" | jq -r .name)" >> $GITHUB_ENV + echo "published_at=$(echo "$response" | jq -r .published_at)" >> $GITHUB_ENV + echo "body=$(echo "$response" | jq -r .body)" >> $GITHUB_ENV + echo "html_url=$(echo "$response" | jq -r .html_url)" >> $GITHUB_ENV + # Step 3: Update version.json file with latest information - name: Update version.json run: | echo '{ - "tag_name": "${{ steps.get_release.outputs.tag_name }}", - "release_name": "${{ steps.get_release.outputs.name }}", - "published_at": "${{ steps.get_release.outputs.published_at }}", - "body": "${{ steps.get_release.outputs.body }}" - "html_url": "${{ steps.get_release.outputs.html_url }}" + "tag_name": "${{ env.tag_name }}", + "release_name": "${{ env.name }}", + "published_at": "${{ env.published_at }}", + "body": "${{ env.body }}", + "html_url": "${{ env.html_url }}" }' > version.json + # Step 4: Configure a user to create a branch and then push changes + - name: Configure Git user + run: | + git config --global user.name "GitHub Actions" + git config --global user.email "actions@github.com" + + # Step 5: Create a new branch for version updates - name: Create new branch run: | - git checkout -b update-version-${{ steps.get_release.outputs.tag_name }} + git checkout -b update-version-${{ env.tag_name }} git add version.json - git commit -m "Update version.json for release ${{ steps.get_release.outputs.tag_name }}" + git commit -m "Update version.json for release ${{ env.tag_name }}" + # Step 6: Push branch - name: Push branch run: | - git push origin update-version-${{ steps.get_release.outputs.tag_name }} + git push origin update-version-${{ env.tag_name }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Step 7: Create a pull request from the pushed branch - name: Create Pull Request run: | curl -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github.v3+json" \ https://api.github.com/repos/${{ github.repository }}/pulls \ -d '{ - "title": "Update version.json for release ${{ steps.get_release.outputs.tag_name }}", + "title": "Update version.json for release ${{ env.tag_name }}", "body": "This PR updates version.json with the latest release information.", - "head": "update-version-${{ steps.get_release.outputs.tag_name }}", + "head": "update-version-${{ env.tag_name }}", "base": "develop" }'