[BOT] [CREATE-SWAGGER] [SKIP-GH-PAGES] create swagger for "smart-cont… #21
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: 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] Add index.html for new swagger.yaml files" | |
git push | |
- 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' | |
}); |