Reusable GitHub Actions for General Dexterity projects.
Use the @v1 tag for the latest stable v1.x.x release:
uses: general-dexterity/actions/pnpm-install@v1For maximum stability, pin to a specific version (e.g., @v1.0.0).
Deploy to Cloudflare Workers production traffic using versions.
- uses: general-dexterity/actions/cloudflare-deploy-production@v1
with:
cloudflare-api-token: ${{ secrets.CLOUDFLARE_API_TOKEN }}
cloudflare-account-id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
environment-url: https://example.com
version-message: "abc1234 commit message"
github-token: ${{ github.token }}Deploy preview version with alias to Cloudflare Workers.
- uses: general-dexterity/actions/cloudflare-deploy-preview@v1
with:
cloudflare-api-token: ${{ secrets.CLOUDFLARE_API_TOKEN }}
cloudflare-account-id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
preview-alias: pr-123
version-message: "abc1234 commit message"
github-token: ${{ github.token }}Check for dead links in built site using hyperlink.
- uses: general-dexterity/actions/check-dead-links@v1
with:
directory: distAdd a "Claude" label (orange) to PRs when the branch starts with claude/.
# .github/workflows/claude-tag.yml
name: Claude Tag
on:
pull_request:
types: [opened, reopened]
jobs:
label:
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read
steps:
- uses: general-dexterity/actions/claude-tag@v1Delete a GitHub deployment environment.
- uses: general-dexterity/actions/delete-deployment-environment@v1
with:
github-token: ${{ github.token }}
environment-name: pr-123Install pnpm and dependencies with caching.
- uses: general-dexterity/actions/pnpm-install@v1Fail CI if specified labels are present on a PR. Useful for blocking PRs with labels like "blocked", "do-not-merge", or "wip".
Create a dedicated workflow file to trigger on label changes:
# .github/workflows/pr-label-check.yml
name: PR Label Check
on:
pull_request:
types: [opened, synchronize, reopened, labeled, unlabeled]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: general-dexterity/actions/pr-label-check@v1
# with:
# blocking-labels: blocked,do-not-merge # optional, defaults to "blocked"