35
35
- name : Compare versions
36
36
id : check-update
37
37
run : |
38
- if [ "${LATEST_VERSION} " != "${CURRENT_VERSION} " ] || [ "${GITHUB_EVENT_NAME }" == "workflow_dispatch" ]; then
39
- echo "New version available!"
38
+ if [ "${{ env. LATEST_VERSION }} " != "${{ env. CURRENT_VERSION }} " ] || [ "${{ github.event_name } }" == "workflow_dispatch" ]; then
39
+ echo "New version available or manually triggered !"
40
40
echo "UPDATE_NEEDED=true" >> "$GITHUB_ENV"
41
41
else
42
42
echo "UPDATE_NEEDED=false" >> "$GITHUB_ENV"
@@ -47,53 +47,46 @@ jobs:
47
47
if : env.UPDATE_NEEDED == 'true'
48
48
id : get-sha256
49
49
run : |
50
- SHA_URL="https://github.com/fortran-lang/fpm/releases/download/${LATEST_VERSION_V} /fpm-${LATEST_VERSION}.zip.sha256"
50
+ SHA_URL="https://github.com/fortran-lang/fpm/releases/download/${{ env. LATEST_VERSION_V }} /fpm-${{ env. LATEST_VERSION } }.zip.sha256"
51
51
SHA256="$(curl -sL "${SHA_URL}" | awk '{print $1}')"
52
52
echo "SHA256=${SHA256}" >> "$GITHUB_ENV"
53
53
echo "New SHA256: ${SHA256}"
54
54
55
55
- name : Create branch for update
56
56
if : env.UPDATE_NEEDED == 'true'
57
57
run : |
58
- BRANCH_NAME="auto-update-fpm-${LATEST_VERSION}"
59
- git checkout -b "${BRANCH_NAME}"
58
+ BRANCH_NAME="auto-update-fpm-${{ env.LATEST_VERSION }}-$(date +%s)" # Add timestamp to branch name for uniqueness
60
59
echo "BRANCH_NAME=${BRANCH_NAME}" >> "$GITHUB_ENV"
61
60
62
61
- name : Update formula
63
62
if : env.UPDATE_NEEDED == 'true'
64
63
run : |
65
- sed -i "s|url \".*\"|url \"https://github.com/fortran-lang/fpm/releases/download/${LATEST_VERSION_V}/fpm-${LATEST_VERSION}.zip\"|" Formula/fpm.rb
66
- sed -i "s|sha256 \".*\"|sha256 \"${SHA256}\"|" Formula/fpm.rb
67
- echo "# Formula last updated on $(date +'%Y-%m-%d %H:%M:%S')" >> Formula/fpm.rb
68
-
69
- - name : Commit changes
70
- if : env.UPDATE_NEEDED == 'true'
71
- run : |
72
- git config --global user.name "GitHub Actions"
73
- git config --global user.email "[email protected] "
74
- git add Formula/fpm.rb
75
- git status # Check if any files are staged for commit
76
- git commit -m "Update fpm to ${LATEST_VERSION}"
77
-
78
- - name : Push changes to branch
64
+ TIMESTAMP=$(date +%s)
65
+ RUN_ID="${{ github.run_id }}-${{ github.run_number }}"
66
+ sed -i "1s/^/# Formula last updated on $(date -u +"%Y-%m-%dT%H:%M:%SZ") (Run: ${RUN_ID})\n/" Formula/fpm.rb
67
+ sed -i "s|url \".*\"|url \"https://github.com/fortran-lang/fpm/releases/download/${{ env.LATEST_VERSION_V }}/fpm-${{ env.LATEST_VERSION }}.zip\"|" Formula/fpm.rb
68
+ sed -i "s|sha256 \".*\"|sha256 \"${{ env.SHA256 }}\"|" Formula/fpm.rb
69
+
70
+ - name : Debug - Show changes
79
71
if : env.UPDATE_NEEDED == 'true'
80
72
run : |
81
- git push origin ${{ env.BRANCH_NAME }}
73
+ git diff Formula/fpm.rb || echo "No changes detected in Formula/fpm.rb"
82
74
83
75
- name : Create Pull Request
84
76
if : env.UPDATE_NEEDED == 'true'
85
77
id : create-pr
86
- uses : peter-evans/create-pull-request@v6
78
+ uses : peter-evans/create-pull-request@v7
87
79
with :
88
80
token : ${{ secrets.GITHUB_TOKEN }}
89
- commit-message : " Update fpm to ${{ env.LATEST_VERSION }}"
81
+ commit-message : " Update fpm to ${{ env.LATEST_VERSION }} with timestamp "
90
82
title : " Update fpm to ${{ env.LATEST_VERSION }}"
91
83
body : |
92
84
This PR automatically updates the fpm formula to version ${{ env.LATEST_VERSION }}.
93
85
94
86
**Changes:**
95
87
- Updated URL to ${{ env.LATEST_VERSION_V }} release
96
88
- Updated SHA256 to match the new release
89
+ - Added timestamp to force PR: $(date -u +"%Y-%m-%dT%H:%M:%SZ")
97
90
98
91
This PR was created automatically by GitHub Actions.
99
92
branch : ${{ env.BRANCH_NAME }}
@@ -102,19 +95,17 @@ jobs:
102
95
automated-pr
103
96
version-bump
104
97
105
- # Wait for test-bot CI to complete
98
+ # Wait for test-bot CI to complete (unchanged)
106
99
- name : Wait for test-bot to complete
107
100
if : env.UPDATE_NEEDED == 'true' && steps.create-pr.outputs.pull-request-number
108
101
run : |
109
- # Wait for CI to start and finish (maximum 30 minutes)
110
102
echo "Waiting for test-bot workflow to complete..."
111
103
PR_NUMBER=${{ steps.create-pr.outputs.pull-request-number }}
112
104
timeout=1800 # 30 minutes in seconds
113
105
interval=60 # Check every minute
114
106
elapsed=0
115
107
116
108
while [ $elapsed -lt $timeout ]; do
117
- # Check if test-bot workflow has completed
118
109
STATUS=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
119
110
"https://api.github.com/repos/${{ github.repository }}/actions/runs?status=completed&event=pull_request&head_sha=$(git rev-parse HEAD)")
120
111
@@ -141,7 +132,6 @@ jobs:
141
132
exit 1
142
133
fi
143
134
144
- # Add label to trigger pr-pull workflow
145
135
- name : Add pr-pull label
146
136
if : env.UPDATE_NEEDED == 'true' && steps.create-pr.outputs.pull-request-number
147
137
uses : actions/github-script@v6
0 commit comments