Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update version.json and create PR | |
# Trigger the github action when a new release is published | |
on: | |
release: | |
types: [published] | |
jobs: | |
update-version: | |
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 "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": "${{ 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 "[email protected]" | |
# Step 5: Create a new branch for version updates | |
- name: Create new branch | |
run: | | |
git checkout -b update-version-${{ env.tag_name }} | |
git add version.json | |
git commit -m "Update version.json for release ${{ env.tag_name }}" | |
# Step 6: Push branch | |
- name: Push branch | |
run: | | |
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 ${{ env.tag_name }}", | |
"body": "This PR updates version.json with the latest release information.", | |
"head": "update-version-${{ env.tag_name }}", | |
"base": "develop" | |
}' |