name: react-day-picker on: release: types: [published] pull_request: branches: - "**" push: branches: - "**" workflow_dispatch: inputs: publish: description: Publish on npm required: false default: false type: boolean permissions: id-token: write # Required for OIDC contents: read jobs: typecheck: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 24 cache: pnpm registry-url: "https://registry.npmjs.org" - run: pnpm install --frozen-lockfile - run: pnpm typecheck lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm lint ci . --reporter=github test: needs: [lint, typecheck] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm test - run: pnpm test:tz build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm build - uses: actions/upload-artifact@v4 with: name: rdp-dist path: dist test-build: runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 24 cache: pnpm - uses: actions/download-artifact@v4 with: name: rdp-dist - run: pnpm install --frozen-lockfile - run: pnpm run build - run: pnpm test:build publish-on-npm: runs-on: ubuntu-latest needs: [build, test] if: ${{ github.event_name == 'release' || github.event.inputs.publish }} permissions: contents: write id-token: write steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 24 registry-url: https://registry.npmjs.org/ always-auth: false - uses: actions/download-artifact@v4 with: name: rdp-dist path: dist - run: npm publish --provenance --tag latest