-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into remove_derivative
- Loading branch information
Showing
71 changed files
with
2,353 additions
and
1,995 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
name: Update README Network Versions | ||
on: | ||
schedule: | ||
- cron: '0 * * * *' # Runs every hour at the 0th minute | ||
workflow_dispatch: # Allows manual triggering | ||
|
||
jobs: | ||
check-and-update: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
pull-requests: write | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
|
||
- name: Fetch current versions | ||
id: get-versions | ||
run: | | ||
# Fetch versions from all networks | ||
ignition_version=$(curl -s -X POST -H "Content-Type: application/json" --data '{"query":"query { nodeInfo { nodeVersion }}"}' https://mainnet.fuel.network/v1/graphql | jq -r '.data.nodeInfo.nodeVersion') | ||
testnet_version=$(curl -s -X POST -H "Content-Type: application/json" --data '{"query":"query { nodeInfo { nodeVersion }}"}' https://testnet.fuel.network/v1/graphql | jq -r '.data.nodeInfo.nodeVersion') | ||
devnet_version=$(curl -s -X POST -H "Content-Type: application/json" --data '{"query":"query { nodeInfo { nodeVersion }}"}' https://devnet.fuel.network/v1/graphql | jq -r '.data.nodeInfo.nodeVersion') | ||
echo "ignition_version=$ignition_version" >> $GITHUB_OUTPUT | ||
echo "testnet_version=$testnet_version" >> $GITHUB_OUTPUT | ||
echo "devnet_version=$devnet_version" >> $GITHUB_OUTPUT | ||
- name: Extract current README versions | ||
id: readme-versions | ||
run: | | ||
# Extract versions from README.md | ||
ignition_readme=$(grep -E '^\| Fuel Ignition' README.md | awk -F '|' '{gsub(/ /, "", $3); print $3}') | ||
testnet_readme=$(grep -E '^\| Testnet' README.md | awk -F '|' '{gsub(/ /, "", $3); print $3}') | ||
devnet_readme=$(grep -E '^\| Devnet' README.md | awk -F '|' '{gsub(/ /, "", $3); print $3}') | ||
echo "ignition_readme=$ignition_readme" >> $GITHUB_OUTPUT | ||
echo "testnet_readme=$testnet_readme" >> $GITHUB_OUTPUT | ||
echo "devnet_readme=$devnet_readme" >> $GITHUB_OUTPUT | ||
- name: Update README if needed | ||
id: update-readme | ||
run: | | ||
echo "Comparing versions..." | ||
needs_update=false | ||
tmp_file=$(mktemp) | ||
# Create sed command file | ||
{ | ||
if [ "${{ steps.get-versions.outputs.ignition_version }}" != "${{ steps.readme-versions.outputs.ignition_readme }}" ]; then | ||
echo "s/^\| *Fuel Ignition *\|.*\|/| Fuel Ignition | ${{ steps.get-versions.outputs.ignition_version }} |/" | ||
needs_update=true | ||
fi | ||
if [ "${{ steps.get-versions.outputs.testnet_version }}" != "${{ steps.readme-versions.outputs.testnet_readme }}" ]; then | ||
echo "s/^\| *Testnet *\|.*\|/| Testnet | ${{ steps.get-versions.outputs.testnet_version }} |/" | ||
needs_update=true | ||
fi | ||
if [ "${{ steps.get-versions.outputs.devnet_version }}" != "${{ steps.readme-versions.outputs.devnet_readme }}" ]; then | ||
echo "s/^\| *Devnet *\|.*\|/| Devnet | ${{ steps.get-versions.outputs.devnet_version }} |/" | ||
needs_update=true | ||
fi | ||
} > sed_commands.txt | ||
echo "Generated sed commands:" | ||
cat sed_commands.txt | ||
echo "" | ||
if [ "$needs_update" = true ]; then | ||
echo "Updating README.md..." | ||
sed -E -f sed_commands.txt README.md > "$tmp_file" | ||
mv "$tmp_file" README.md | ||
echo "Updated README content:" | ||
cat README.md | ||
echo "UPDATED=true" >> $GITHUB_ENV | ||
else | ||
echo "No version changes detected" | ||
echo "UPDATED=false" >> $GITHUB_ENV | ||
fi | ||
- name: Create Pull Request | ||
if: env.UPDATED == 'true' | ||
run: | | ||
# Check for existing PRs with specific label | ||
existing_prs=$(gh pr list --state open --search 'in:title "Update network versions on README"' --json number --jq 'length') | ||
if [ "$existing_prs" -gt 0 ]; then | ||
echo "Existing PR found, skipping PR creation" | ||
exit 0 | ||
fi | ||
# Proceed with PR creation | ||
echo "Creating PR..." | ||
git config --global user.name "GitHub Actions" | ||
git config --global user.email "[email protected]" | ||
branch_name="version-update-$(date +%s)" | ||
git checkout -b "$branch_name" | ||
git add README.md | ||
git commit -m "Update network versions on README: | ||
- Fuel Ignition: ${{ steps.get-versions.outputs.ignition_version }} | ||
- Testnet: ${{ steps.get-versions.outputs.testnet_version }} | ||
- Devnet: ${{ steps.get-versions.outputs.devnet_version }}" | ||
git push origin "$branch_name" | ||
gh pr create \ | ||
--title "Update network versions on README" \ | ||
--body "Automated version updates: | ||
- Fuel Ignition: ${{ steps.get-versions.outputs.ignition_version }} | ||
- Testnet: ${{ steps.get-versions.outputs.testnet_version }} | ||
- Devnet: ${{ steps.get-versions.outputs.devnet_version }}" \ | ||
--reviewer FuelLabs/client \ | ||
--base master \ | ||
--head "$branch_name" | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
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
Oops, something went wrong.