Skip to content

[BOT] [CREATE-SWAGGER] [SKIP-GH-PAGES] create swagger for "user-ops-i… #50

[BOT] [CREATE-SWAGGER] [SKIP-GH-PAGES] create swagger for "user-ops-i…

[BOT] [CREATE-SWAGGER] [SKIP-GH-PAGES] create swagger for "user-ops-i… #50

Workflow file for this run

name: Create index.html for new swagger.yaml
on:
push:
paths:
- '**/swagger.yaml'
jobs:
create-swagger-version:
if: "contains(github.event.commits[0].message, '[CREATE-SWAGGER]')"
env:
GITHUB_TOKEN: ${{ secrets.BLOCKSCOUT_BOT_TOKEN }}
GH_TOKEN: ${{ secrets.BLOCKSCOUT_BOT_TOKEN }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
# fetch the last 2 commits to check difference
fetch-depth: 2
- name: Check commit message
id: check-commit
run: |
COMMIT_MESSAGE=$(git log -1 --pretty=%B)
echo "Commit message: $COMMIT_MESSAGE"
if [[ "$COMMIT_MESSAGE" != *"[BOT]"* || "$COMMIT_MESSAGE" != *"[CREATE-SWAGGER]"* ]]; then
echo "The commit message does not contain [BOT] and [CREATE-SWAGGER]. Exiting."
exit 1
fi
- name: Find new swagger.yaml files
id: find-new-swagger
run: |
git --no-pager log -5 --oneline
git status
# Find new swagger.yaml files in the commit
git diff --name-status master~1 master | grep '^A' | grep 'swagger.yaml' | awk '{print $2}' > new_swagger_files.txt
if [[ ! -s new_swagger_files.txt ]]; then
echo "No new swagger.yaml files found. Exiting."
exit 1
fi
echo "New swagger.yaml files found:"
cat new_swagger_files.txt
- name: Handle new swagger file
run: |
# Create index.html for each new swagger.yaml found
while IFS= read -r file; do
dir=$(dirname "$file")
cp utils/default_swagger_index_page.html "$dir/index.html"
version=$(basename "$dir")
parent_dir=$(dirname "$dir")
echo "Parent dir: $parent_dir"
echo "$version" >> "$parent_dir/hosted_versions.txt"
done < new_swagger_files.txt
rm new_swagger_files.txt
- name: Commit and push changes
run: |
git config --global user.email "[email protected]"
git config --global user.name "blockscout-bot"
git add .
git commit -m "[BOT] [SKIP-GH-PAGES] Add index.html for new swagger.yaml files"
git fetch origin master
if git rebase origin/master; then
git push origin master
else
git rebase --abort
echo "Rebase failed due to conflicts, exiting."
exit 1
fi
- name: Trigger github-pages workflow
uses: actions/github-script@v4
with:
github-token: ${{ secrets.BLOCKSCOUT_BOT_TOKEN }}
script: |
await github.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'jekyll-gh-pages.yml',
ref: 'master'
});