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,52 +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 "1i # Formula last updated on $(date)" Formula/fpm.rb
66
- sed -i "s|url \".*\"|url \"https://github.com/fortran-lang/fpm/releases/download/${LATEST_VERSION_V}/fpm-${LATEST_VERSION}.zip\"|" Formula/fpm.rb
67
- sed -i "s|sha256 \".*\"|sha256 \"${SHA256}\"|" 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 commit -m "Update fpm to ${LATEST_VERSION}"
76
-
77
- - 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
78
71
if : env.UPDATE_NEEDED == 'true'
79
72
run : |
80
- git push origin "${BRANCH_NAME} "
73
+ git diff Formula/fpm.rb || echo "No changes detected in Formula/fpm.rb "
81
74
82
75
- name : Create Pull Request
83
76
if : env.UPDATE_NEEDED == 'true'
84
77
id : create-pr
85
- uses : peter-evans/create-pull-request@v6
78
+ uses : peter-evans/create-pull-request@v7
86
79
with :
87
80
token : ${{ secrets.GITHUB_TOKEN }}
88
- commit-message : " Update fpm to ${{ env.LATEST_VERSION }}"
81
+ commit-message : " Update fpm to ${{ env.LATEST_VERSION }} with timestamp "
89
82
title : " Update fpm to ${{ env.LATEST_VERSION }}"
90
83
body : |
91
84
This PR automatically updates the fpm formula to version ${{ env.LATEST_VERSION }}.
92
85
93
86
**Changes:**
94
87
- Updated URL to ${{ env.LATEST_VERSION_V }} release
95
88
- Updated SHA256 to match the new release
89
+ - Added timestamp to force PR: $(date -u +"%Y-%m-%dT%H:%M:%SZ")
96
90
97
91
This PR was created automatically by GitHub Actions.
98
92
branch : ${{ env.BRANCH_NAME }}
@@ -121,15 +115,13 @@ jobs:
121
115
- name : Wait for test-bot to complete
122
116
if : env.UPDATE_NEEDED == 'true' && steps.create-pr.outputs.pull-request-number
123
117
run : |
124
- # Wait for CI to start and finish (maximum 30 minutes)
125
118
echo "Waiting for test-bot workflow to complete..."
126
119
PR_NUMBER=${{ steps.create-pr.outputs.pull-request-number }}
127
120
timeout=1800 # 30 minutes in seconds
128
121
interval=60 # Check every minute
129
122
elapsed=0
130
123
131
124
while [ $elapsed -lt $timeout ]; do
132
- # Check if test-bot workflow has completed
133
125
STATUS=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
134
126
"https://api.github.com/repos/${{ github.repository }}/actions/runs?status=completed&event=pull_request&head_sha=$(git rev-parse HEAD)")
135
127
@@ -156,7 +148,6 @@ jobs:
156
148
exit 1
157
149
fi
158
150
159
- # Add label to trigger pr-pull workflow
160
151
- name : Add pr-pull label
161
152
if : env.UPDATE_NEEDED == 'true' && steps.create-pr.outputs.pull-request-number
162
153
uses : actions/github-script@v6
0 commit comments