mirror of
https://github.com/millionco/react-doctor.git
synced 2026-09-14 20:00:24 +08:00
4728f2da91
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com> Co-authored-by: Rayhan Noufal Arayilakath <me@rayhanadev.com>
59 lines
1.6 KiB
YAML
59 lines
1.6 KiB
YAML
name: Publish Any Commit
|
|
|
|
on: [push, pull_request]
|
|
|
|
permissions: {}
|
|
|
|
concurrency:
|
|
# Keyed by PR number (not head_ref): two different fork PRs can share a
|
|
# head branch name (most commonly `main`), and a name-keyed group would let
|
|
# one contributor's push cancel or queue behind another's unrelated run.
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
env:
|
|
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- uses: pnpm/action-setup@v5
|
|
|
|
- uses: actions/setup-node@v5
|
|
with:
|
|
node-version: 22.18.0
|
|
cache: pnpm
|
|
|
|
- run: pnpm install --frozen-lockfile --prefer-offline
|
|
|
|
- run: pnpm build
|
|
|
|
- name: Publish packages (retry on transient failures)
|
|
run: |
|
|
max_attempts=4
|
|
attempt=1
|
|
while [ "$attempt" -le "$max_attempts" ]; do
|
|
if pnpm dlx pkg-pr-new publish \
|
|
./packages/react-doctor \
|
|
./packages/oxlint-plugin-react-doctor \
|
|
./packages/eslint-plugin-react-doctor; then
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$attempt" -eq "$max_attempts" ]; then
|
|
exit 1
|
|
fi
|
|
|
|
sleep_seconds=$((2 ** attempt))
|
|
echo "pkg-pr-new publish failed on attempt ${attempt}/${max_attempts}; retrying in ${sleep_seconds}s..."
|
|
sleep "$sleep_seconds"
|
|
attempt=$((attempt + 1))
|
|
done
|