Update Sessionize Data #13
This file contains hidden or 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: Update Sessionize Data | |
| on: | |
| workflow_dispatch: | |
| jobs: | |
| update-data: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| package_json_file: "package.json" | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: "package.json" | |
| cache: "pnpm" | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Fetch session data | |
| run: | | |
| curl -sSL "$SESSIONIZE_SESSION_API" > src/data/sessions.json | |
| env: | |
| SESSIONIZE_SESSION_API: ${{ secrets.SESSIONIZE_SESSION_API }} | |
| - name: Fetch speaker data | |
| run: | | |
| curl -sSL "$SESSIONIZE_SPEAKER_API" > src/data/speakers.json | |
| env: | |
| SESSIONIZE_SPEAKER_API: ${{ secrets.SESSIONIZE_SPEAKER_API }} | |
| - name: Fetch timetable data | |
| run: | | |
| curl -sSL "$SESSIONIZE_TIMETABLE_API" > src/data/timetable.json | |
| env: | |
| SESSIONIZE_TIMETABLE_API: ${{ secrets.SESSIONIZE_TIMETABLE_API }} | |
| - name: Format JSON files | |
| run: | | |
| pnpm exec prettier --write src/data/*.json | |
| - name: Check for changes | |
| id: git_diff | |
| run: | | |
| if [[ -n "$(git status --porcelain src/data/)" ]]; then | |
| echo "changed=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "changed=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Set branch name | |
| id: set_branch | |
| run: | | |
| echo "branch=update-session-$(TZ='Asia/Tokyo' date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT | |
| - name: Set current date | |
| id: set_date | |
| run: echo "pr_title_date=$(TZ='Asia/Tokyo' date +'%Y/%m/%d')" >> $GITHUB_OUTPUT | |
| - name: Create Pull Request | |
| if: steps.git_diff.outputs.changed == 'true' | |
| uses: peter-evans/create-pull-request@v7 | |
| with: | |
| branch: ${{ steps.set_branch.outputs.branch }} | |
| title: "【${{ steps.set_date.outputs.pr_title_date }}】セッション情報更新" | |
| commit-message: "Update sessionize data" | |
| body: "Sessionize APIから最新データを取得し、sessions/speakers/timetable.jsonを更新しました。" | |
| add-paths: | | |
| src/data/sessions.json | |
| src/data/speakers.json | |
| src/data/timetable.json |