Skip to content

Update Swagger UI

Update Swagger UI #1

name: Update Swagger UI
on:
schedule:
- cron: "0 10 * * *" # 매일 오전 10시에 실행 (UTC)
workflow_dispatch: # 수동으로 실행할 수 있는 옵션
jobs:
updateSwagger:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get Latest Swagger UI Release
id: swagger-ui
run: |
release_tag=$(curl -sL https://api.github.com/repos/swagger-api/swagger-ui/releases/latest | jq -r ".tag_name")
echo "release_tag=$release_tag" >> $GITHUB_OUTPUT
current_tag=$(<swagger-ui.version)
echo "current_tag=$current_tag" >> $GITHUB_OUTPUT
- name: Update Swagger UI
if: steps.swagger-ui.outputs.current_tag != steps.swagger-ui.outputs.release_tag
env:
RELEASE_TAG: ${{ steps.swagger-ui.outputs.release_tag }}
SWAGGER_YAML: "swagger.yaml"
run: |
# 기존 dist와 index.html 삭제
rm -fr dist index.html
# 최신 Swagger UI 다운로드
curl -sL -o $RELEASE_TAG https://api.github.com/repos/swagger-api/swagger-ui/tarball/$RELEASE_TAG
tar -xzf $RELEASE_TAG --strip-components=1 $(tar -tzf $RELEASE_TAG | head -1 | cut -f1 -d"/")/dist
rm $RELEASE_TAG
# index.html 이동 및 설정
mv dist/index.html .
# swagger.yaml을 참조하도록 수정
sed -i "s|https://petstore.swagger.io/v2/swagger.json|$SWAGGER_YAML|g" dist/swagger-initializer.js
# CSS/JS 경로 수정 (dist 폴더를 참조하도록)
sed -i "s|href=\"./|href=\"dist/|g" index.html
sed -i "s|src=\"./|src=\"dist/|g" index.html
sed -i "s|href=\"index|href=\"dist/index|g" index.html
# 버전 파일 업데이트
echo ${{ steps.swagger-ui.outputs.release_tag }} > swagger-ui.version
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
commit-message: Update swagger-ui to ${{ steps.swagger-ui.outputs.release_tag }}
title: Update SwaggerUI to ${{ steps.swagger-ui.outputs.release_tag }}
body: |
Updates [swagger-ui][1] to ${{ steps.swagger-ui.outputs.release_tag }}
## 변경 사항
- Swagger UI 버전이 ${{ steps.swagger-ui.outputs.release_tag }}로 업데이트되었습니다.
- 새로운 기능 및 버그 수정이 포함되어 있습니다.
Auto-generated by [create-pull-request][2]
[1]: https://github.com/swagger-api/swagger-ui
[2]: https://github.com/peter-evans/create-pull-request
labels: dependencies, automated pr
branch: swagger-ui-updates