inup (self) #38
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: inup (self) | |
| # Dogfood: inup upgrades its own dependencies via the local action. Proves the rolling-PR flow | |
| # end to end. Runs the local action (uses: ./) against the locally built CLI rather than npx, so a | |
| # change to the action or the --apply path is exercised before publish. | |
| on: | |
| schedule: | |
| - cron: '0 6 * * *' # daily, 06:00 UTC | |
| workflow_dispatch: {} | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| upgrade: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| # Install pnpm BEFORE setup-node: setup-node's `cache: pnpm` resolver shells out to | |
| # `pnpm store path`, so pnpm must already be on PATH when that step runs. The version is | |
| # picked up from the `packageManager` field in package.json. | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: 'pnpm' | |
| - name: Install and build | |
| run: | | |
| pnpm install --frozen-lockfile | |
| pnpm build | |
| - name: Put this branch's inup onto PATH | |
| # The action prefers an `inup` already on PATH, so this exercises the freshly built CLI | |
| # from this checkout instead of npx-fetching a published release. We symlink the built | |
| # bin into a dir we add to $GITHUB_PATH directly — this sidesteps pnpm's global-bin | |
| # plumbing (`pnpm link --global` was removed in v11, and `pnpm add -g` needs `pnpm setup` | |
| # to put PNPM_HOME/bin on PATH, which isn't run on the runner). | |
| run: | | |
| mkdir -p "$RUNNER_TEMP/inup-bin" | |
| ln -sf "$PWD/dist/cli.js" "$RUNNER_TEMP/inup-bin/inup" | |
| chmod +x dist/cli.js | |
| echo "$RUNNER_TEMP/inup-bin" >> "$GITHUB_PATH" | |
| - name: Run inup via the local action | |
| uses: ./ | |
| with: | |
| # PAT (not the default GITHUB_TOKEN) so the opened PR triggers CI workflows and to | |
| # bypass the "Actions can't create PRs" repo policy. Reuses the existing repo secret. | |
| token: ${{ secrets.GH_PAT }} | |
| # Commit as the maintainer instead of github-actions[bot] (existing repo secrets). | |
| committer: ${{ secrets.GH_USERNAME }} <${{ secrets.GH_EMAIL }}> | |
| author: ${{ secrets.GH_USERNAME }} <${{ secrets.GH_EMAIL }}> | |
| # Match the Node version this job built under (undici@8 needs Node >=22.19). | |
| node-version: '24' | |
| target: minor | |
| pr-title: 'chore(deps): dependency upgrades' | |
| labels: | | |
| dependencies | |
| automated |